Une injection SQL est une attaque malveillante sur une base de données informatique , par laquelle un attaquant inserts ou injecte une requête SQL - une demande formelle à la base de données - dans une chaîne qui est finalement exécuté par la base de données ? , par l'intermédiaire des données qu'il entre dans un programme informatique. En cas de succès , une injection SQL peut extraire les données sensibles de la base de données , insérer, mettre à jour ou supprimer des données ou même arrêter le système de gestion de base de données. SQL
injection SQL dynamique profite d'une technique de programmation appelée " SQL dynamique. " Le texte complet d'une instruction SQL dynamique , ou une commande , est inconnu au moment où un programme est compilé , mais est construite, de manière dynamique , à partir de l'entrée de données par l'utilisateur lorsque le programme est exécuté . Un attaquant met fin à la commande construite prématurément et ajoute une nouvelle commande, terminé par une marque de commentaire, comme «-», de sorte que tout texte qui suit est ignoré au moment de l' exécution . Dans une forme légèrement plus sophistiqué de l'injection SQL , un attaquant injecte du code malveillant dans les données qui sont stockées dans la base de données , lorsque les données stockées sont récupérées et utilisées pour construire une instruction SQL dynamique , le code malveillant est exécuté
< . br> Effets
Exactement ce que les attaquants peuvent atteindre par injection SQL dépend de leur imagination et d'habileté, mais les conséquences typiques d'une injection SQL sont la perte de confidentialité , la perte d' intégrité des données et les problèmes liés à l' authentification ou l'autorisation, des utilisateurs de bases de données . Si les informations de l'autorisation est tenu dans la base de données elle-même , une injection SQL peut extraire l'information , ou de le modifier , de sorte que les utilisateurs non autorisés peuvent se connecter à la base de données .
Affecté plates-formes
injection SQL s'applique évidemment le SQL, le langage le plus commun de requête de base de données , mais une plate-forme qui nécessite une interaction avec une base de données SQL peut être affectée. Vulnérabilités d'injection SQL sont faciles à détecter et facile à exploiter , ce qui a signifié que l'injection SQL est devenu un problème commun avec les logiciels de base de données et de sites Web orientée base de données .
Validation
< p> Si une attaque injecte du code SQL malveillant qui s'exécute sans erreurs , il n'y a aucun moyen de détecter injection SQL à partir d'un programme informatique. Les programmeurs de bases de données doivent donc revoir tout le code du programme qui construit des instructions SQL dynamiques et valider toutes les entrées utilisateur , sans faire aucune hypothèse sur la taille, le contenu ou le type de données. Un attaquant peut délibérément imbriquer une instruction " DROP TABLE" , ou un autre , une déclaration tout aussi malicieux dans un champ de texte , de sorte que les programmeurs doivent faire en sorte que les programmes se comportent de manière appropriée dans de telles circonstances.
< Br >