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 ?

  1. 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
  2. BParce que le navigateur vérifie les types de caractères saisis, si bien que les chaînes malveillantes n'atteignent jamais le serveur
  3. 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.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases de la sécurité de l'information

  1. Une application web de forum présentait une vulnérabilité par laquelle des scripts contenus dans des textes publiés par des utilisateurs s'exécutaient dans le navigateur des autres visiteurs. Quelle combinaison indique correctement le nom de cette vulnérabilité et sa contre-mesure fondamentale ?
  2. Une application web présente une vulnérabilité : si un utilisateur connecté ouvre une page piège préparée par un attaquant, son navigateur envoie au site légitime des requêtes qu'il n'a pas voulues, comme un virement ou une modification de paramètres. Quelle contre-mesure est appropriée ?
  3. Une application web lit et affiche un fichier en accolant un nom de fichier fourni dans un paramètre d'URL au nom de son dossier public. Si l'on fournit comme nom de fichier une valeur contenant ../, on peut lire des fichiers de configuration et d'autres fichiers situés hors du dossier public. Quelle combinaison indique correctement le nom de cette attaque et une contre-mesure ?
  4. Si une application web conserve le même identifiant de session avant et après la connexion, un attaquant peut amener l'utilisateur à utiliser un identifiant de session préparé à l'avance, puis, une fois l'utilisateur connecté, usurper son identité avec cet identifiant. Quelle est la contre-mesure la plus appropriée contre cette attaque ?
  5. Quelle affirmation décrit correctement une attaque DDoS ?