? Une attaque SQL, ou attaque par injection SQL, consiste en l'insertion , ou injection, de code malveillant dans les valeurs ou variables , que les entrées d'un utilisateur dans un programme informatique . Le code malveillant est liée , ou enchaîné , avec des commandes SQL légitimes pour produire une commande qui produit des résultats inattendus . SQL
SQL, également connu sous le nom Structure Query Language , est un langage standard de l'industrie pour la création, la mise à jour et l'interrogation de bases de données relationnelles , bases de données ou comportant de multiples fichiers de renseignements connexes, généralement stockées dans des tables de lignes et de colonnes . SQL est souvent intégré dans des langages de programmation à usage général pour créer des programmes qui permettent aux utilisateurs d'interagir avec une base de données . Un programme peut inclure des instructions SQL telles que "SELECT * FROM nom_table WHERE nomtable . Nomchamp = variablename " dans lequel nomtable est le nom d'une table dans la base de données , nom de champ est le nom d'une colonne, ou sur le terrain , dans ce tableau , et variablename est un valeur d'entrée par l'utilisateur.
gravité
la gravité d'une attaque SQL est seulement limité par l'imagination et l'habileté de l'attaquant. En insérant stratégiquement le point-virgule ( ;) et double tiret (-) - caractères qui délimitent les commandes et les commentaires SQL respectivement - les attaquants peuvent résilier prématurément commandes existantes et ajouter leurs propres nouvelles commandes . Ces nouvelles commandes pourraient, par exemple , extraire des données sensibles de la base de données, modifier ou supprimer des données ou accorder des attaquants privilèges administratifs complets à la base de données. Dans l'exemple ci-dessus, si l'instruction SQL lu "SELECT * FROM nom_table WHERE nomtable nomchamp = ". "+ + Variablename '"; , un utilisateur peut entrer des commandes SQL supplémentaires et ainsi de rassembler une chose requête comme "SELECT * FROM tablename.fieldname = ' somevalue '; . DROP TABLE nom_table
Effets
SQL attaque habituellement conduire à la perte de l'intégrité de la confidentialité et des données ainsi que d'autres problèmes graves , de sorte organisations devraient prendre la menace d'attaques SQL sérieux. SQL attaques se produisent généralement lorsque les données entrent dans un programme à partir d'une source non fiable ou les données sont utilisées pour construire dynamiquement une requête SQL, ou les deux. Attaques SQL peuvent évidemment une incidence sur SQL elle-même , mais aussi n'importe quelle plateforme qui nécessite une interaction avec une base de données SQL. Sites Web orientée base de données sont des objectifs communs pour SQL, tout simplement parce que les attaquants peuvent détecter et exploiter des failles SQL facilement .
Prévention
Pourvu que le code SQL injecté lors d'une attaque SQL contient aucune erreur de syntaxe , il va exécuter avec succès et ne peuvent pas être détectés par programmation. Les programmeurs de bases de données doivent donc valider toutes les entrées utilisateur et d'examiner soigneusement tout code de programme qui construit et exécute les commandes SQL dynamiques pour les vulnérabilités .