Bases de la sécurité de l'information
Comme contre-mesure à l'injection SQL, pourquoi les requêtes préparées avec paramètres substituables (requêtes paramétrées) sont-elles considérées comme plus fondamentales que la suppression des caractères dangereux de la saisie ?
- AParce que la saisie est chiffrée avant d'être transmise à la base de données, si bien que les attaquants ne peuvent pas la lire
- BParce que le navigateur vérifie les types de caractères saisis, si bien que les chaînes malveillantes n'atteignent jamais le serveur
- CParce que la structure de l'instruction SQL est fixée d'abord et que la saisie n'est transmise ensuite que comme valeurs ; quels que soient les caractères qu'elle contient, elle n'est jamais interprétée comme une partie de la commande
Afficher la réponse et l'explication
Réponse : C. Parce que la structure de l'instruction SQL est fixée d'abord et que la saisie n'est transmise ensuite que comme valeurs ; quels que soient les caractères qu'elle contient, elle n'est jamais interprétée comme une partie de la commande
Avec une requête préparée, une instruction SQL dont les valeurs sont remplacées par des symboles (paramètres substituables), comme « SELECT … WHERE id = ? AND password = ? », est d'abord transmise à la base de données pour en fixer la structure, puis la saisie y est rattachée uniquement en tant que valeurs (liaison, ou binding). La saisie est traitée comme une donnée du début à la fin ; même si elle contient des apostrophes, elle ne devient jamais une partie d'une commande, par exemple d'une commande qui ajoute une condition. Supprimer ou échapper les caractères dangereux exige de traiter sans omission toutes les règles détaillées propres à chaque type de base de données et à chaque codage des caractères, et une seule faille suffit à faire réussir l'attaque. Les contrôles de saisie dans le navigateur peuvent être contournés si l'attaquant envoie directement des requêtes sans passer par un navigateur ; ils servent la commodité et ne constituent pas une mesure de sécurité. En outre, donner au compte qui se connecte à la base de données les privilèges minimaux permet de limiter les dégâts.
Continuer : 9 autres questions sur Bases de la sécurité de l'information