SQL-Injection- Hacks sind auf Servern , die nicht über die notwendige sichere Programmierung durchgeführt . Diese sind meist auf Servern , wo die Bahn - Seite Code verwendet Inline-SQL , die die Abfrage in der web- Seite Code anstatt sich in einer gespeicherten Prozedur bedeutet erreicht . Zu wissen, wie eine SQL-Injection- Hack funktioniert hilft Website-Besitzer schützen Kundendaten und sichern Sie die Web-Seiten. Die Form Variable
Der erste Schritt zum Verständnis, wie eine SQL- Injection-Angriff erstellt wird, ist durch die Replikation des Problems. SQL -Injection-Angriffe sind durch Form-Variablen in einer HTML-Seite durchgeführt. Erstellen des Formulars ermöglicht den Webmaster zu simulieren und zu testen, die Sicherheit der Web-Server. Unten ist ein Beispiel für ein Formular-Objekt verwendet, um eine SQL -Injection-Angriff zu erstellen.
Dies ist zwar ein einfaches Formular Textfeld es alles, was benötigt wird, um eine SQL- Injektion zu erreichen, ist es . der Hacker -Code
Wenn SQL Aussagen gemacht werden , baut die Anwendung SQL-Code, wird an die Datenbank gesendet . Wenn eine Zeichenfolge an die Datenbank gesendet wird, sieht der Code so etwas wie die folgenden Text :
select * from myTable wo name = ' myVariableFromtheForm '
Das Häkchen bedeutet das Ende der SQL-Code und das ist, wo Hacker vorbei. Wenn ein Textfeld wie in Abschnitt 1 erstellt wird verwendet, um eine Zeichenfolge zu bauen, kann ein Hacker so etwas wie die folgende in das Textfeld ein:
' oder 1 = 1; -
könnte wie Kauderwelsch aussehen, aber in Wirklichkeit ist es injiziert Code in der Datenbank, die von dem Server ausgeführt wird. Wenn " myVariableFromtheForm " wird durch den Code ersetzt , die Erklärung von dem Server laufen tatsächlich sieht wie folgt aus :
select * from myTable wo name = ' ' bzw. 1 = 1 - '
das "-" ist der Code für Kommentare SQL Server, so dass die letzte Einstellung tick ignoriert. Der String ist leer, und die Hacker spritzt den Code "1 = 1" in der Erklärung. Was das bedeutet ist zurück jede Zeile aus der Tabelle an den Hacker . Dies ist, wie ein skrupelloser Person private Informationen von Datenbankservern stiehlt . Behebung des Problems
Der beste Weg , um das Problem im Code , die anfällig für ist fix eine SQL-Injection- Hack ist , um die Funktion "Ersetzen" in jedem Fall, in dem Text von den Benutzern eingegebene verwenden . Zum Beispiel in ASP-Code , ersetzt die folgende Codezeile die einzigen Häkchen mit zwei . Wenn ein SQL Server Code läuft mit zwei Markierungen , liest er sie als eine wörtliche und die Zeichenfolge nicht beendet
string.replace ( " ' ", " '' "); .
der obige Code ersetzt alle Instanzen eines einzigen Häkchen mit zwei , die Beseitigung der Anfälligkeit einer SQL -Injection-Angriff .