Eine SQL-Injection ist eine bösartige Angriff auf eine Computer-Datenbank , wodurch ein Angreifer Einsätze oder spritzt , eine SQL-Abfrage - eine formelle Anfrage an die Datenbank - in eine Zeichenfolge , die schließlich von der Datenbank ausgeführt wird ? , über die Daten, die er in ein Computerprogramm trägt . Wenn dies gelingt, kann eine SQL-Injection sensible Daten aus der Datenbank extrahieren , Einfügen, Aktualisieren oder Löschen von Daten oder sogar die Datenbank herunterfahren Management-System. Dynamische SQL
SQL Injection nutzt eine Programmiertechnik bekannt als " dynamisches SQL. " Der vollständige Text der dynamischen SQL -Anweisung oder Befehl ist unbekannt , wenn ein Programm kompiliert wird , aber ist so konstruiert , dynamisch , aus dem Daten- Eingabe durch den Benutzer , wenn das Programm ausgeführt wird. Ein Angreifer beendet den Befehl vorzeitig konstruiert und fügt einen neuen Befehl , mit einem Kommentar Markierung beendet , wie "-" , so dass jeder nachfolgende Text zur Ausführungszeit ignoriert. In einer etwas verfeinerten Form von SQL-Injection , ein Angreifer Schadcode injiziert in die Daten, die in der Datenbank gespeichert ist , wenn die gespeicherten Daten abgerufen und verwendet, um eine dynamische SQL-Anweisung zu konstruieren , wird der Schadcode ausgeführt
< . br> Effects
genau das, was können Angreifer durch SQL-Injektion zu erreichen , hängt von ihrer Phantasie und Geschick, aber typische Folgen einer SQL-Injection sind vertraulich Verlust , Verlust der Datenintegrität und Probleme im Zusammenhang mit die Authentifizierung oder Autorisierung von Datenbank-Benutzer . Wenn die Autorisierung in der Datenbank selbst gehalten wird, kann eine SQL-Injection extrahieren Sie die Informationen , oder zu modifizieren , so dass nicht autorisierte Benutzer kann mit der Datenbank verbinden .
Betroffenen Plattformen
SQL Injektion gilt selbstverständlich die SQL , die häufigste Datenbank -Abfragesprache , aber jede Plattform, die Interaktion erfordert mit einer SQL-Datenbank können betroffen sein. SQL -Injection-Schwachstellen sind leicht zu erkennen und einfach zu nutzen , was bedeutete, dass SQL-Injection hat sich zu einem gemeinsamen Problem mit Datenbank-Software -Pakete und Datenbank-gestützte Websites .
Validation
< p> Wenn ein Angriff injiziert bösartige SQL -Code, der ohne Fehler ausgeführt wird, gibt es keinen Weg, um SQL-Injektion in einem Computerprogramm zu erkennen. Datenbank -Programmierer muss daher bewerte alle Programmcode, dynamische SQL-Anweisungen erstellt und alle Benutzereingaben validieren , ohne Annahmen über die Größe , die Inhalte oder die Art der Daten. Ein Angreifer kann absichtlich einbetten "DROP TABLE" -Anweisung oder eine andere , ebenso bösartigen Aussage in einem Textfeld , so dass Programmierer muss sicherstellen , dass die Programme angemessen zu verhalten in einem solchen Fall .