? Ein SQL Angriff oder SQL -Injection-Angriff , beinhaltet das Einführen oder Injektion von Schadcode in den Werten oder Variablen , die ein Benutzer Eingaben in einem Computerprogramm . Der Schadcode ist verknüpft oder verkettet , mit legitimen SQL-Befehle , um einen Befehl , die unerwartete Ergebnisse liefert produzieren . SQL
SQL , auch als Structure Query Language genannt, ist ein Industrie-Standard- Sprache für die Erstellung , Aktualisierung und Abfrage von relationalen Datenbanken oder Datenbanken , die mehrere Dateien von Informationen , in der Regel in den Tabellen der Zeilen gespeichert und Spalten . SQL ist oft in Allzweck- Programmiersprachen eingebettet, um Programme, die Nutzer mit einer Datenbank interagieren zu erstellen. Ein Programm könnte auch SQL-Anweisungen wie " SELECT * FROM Tabellenname WHERE tablename . Fieldname = variablename ", in dem Tabellenname ist der Name einer Tabelle in der Datenbank , ist fieldname Namen einer Spalte oder Feld in der Tabelle , und ist einer variablename Wert Eingabe durch den Benutzer .
Severity
Die Schwere einer SQL Angriff ist nur durch die Phantasie des Angreifers und Geschick begrenzt. Durch die strategische Einsetzen das Semikolon (;) und doppelten Bindestrich (-) Zeichen - die SQL-Befehle und Kommentare begrenzen bzw. - Angreifer können vorhandene Befehle vorzeitig zu beenden und fügen ihre eigene neue Befehle . Diese neuen Befehle können beispielsweise extrahieren sensible Daten aus der Datenbank , Daten ändern oder löschen , oder gewähren Angreifer die volle Administratorrechte für die Datenbank. In dem obigen Beispiel, wenn die SQL-Anweisung zu lesen "SELECT * FROM Tabellenname WHERE tablename fieldname = . ' " + Variablename +' "; könnte ein Benutzer geben Sie zusätzliche SQL-Befehle und so versammeln eine Abfrage so etwas wie" SELECT * FROM tabellenname.feldname = ' somevalue '; . DROP TABLE Tabellenname
Effects
SQL greift in der Regel zum Verlust der Vertraulichkeit und Integrität der Daten sowie andere schwerwiegende Probleme , so Organisationen sollten die Gefahr von SQL -Angriffe ernst nehmen. SQL greift typischerweise auftreten , wenn Daten in einen Programm von einer nicht vertrauenswürdigen Quelle oder Daten können verwendet werden , um dynamisch eine SQL- Abfrage , oder beides. SQL -Angriffe können natürlich beeinflussen SQL selbst, sondern auch jede Plattform, die Interaktion mit einer SQL-Datenbank benötigt . Datenbank-gestützte Websites sind gemeinsame Ziele für SQL , einfach weil Angreifer erkennen und nutzen SQL Fehler leicht .
Prevention
Vorausgesetzt, die SQL-Code während einer SQL Angriff injiziert enthält keine Syntaxfehler , wird es erfolgreich ausgeführt und können nicht programmgesteuert erkannt werden. Datenbank -Programmierer muss daher alle Benutzereingaben validieren und sorgfältig prüfen, ein Programm -Code, und baut führt dynamische SQL -Befehle für Schwachstellen.