Wie SQL-Injection-Schwachstelle überprüft

October 17

PHP-Programmierer verwenden die Sprache, um dynamische SQL-Anweisungen zu bauen, die dann verwendet werden, um einen SQL-Server, um dynamische Inhalte anzuzeigen abzufragen. Sie müssen überprüfen, Ihre PHP-Code für jede SQL-Schwachstellen, die SQL-Injektion-Kerbe zu vermeiden. Die SQL-Injektion-Hack nutzt den Zitate-Charakter, die dynamische SQL-Anweisung um bösartige SQL-Anweisungen ausführen zu manipulieren. Sie Ihre Formulare überprüfen durch Eingabe von SQL-Injektion-Code und jede Seite, die Fehlermeldungen zurückgibt, die Sie anwenden der notwendigen PHP "Mysql_real_escape_string"-Funktion.

Anweisungen

1 Öffnen Sie einen Webbrowser und navigieren Sie zu Ihrer Website. SQL-Injektion arbeiten über Onlineformulare navigieren Sie also zu einem Ihrer online-Formulare zum Testen der Seite.

2 Geben Sie den SQL-Injektion-Code um Ihre Form zu testen. Verwenden Sie ein Anführungszeichen am Anfang im Eingabetext Formular und geben Sie eine SQL select-Anweisung nach dem Zitat. Der folgende Code ist ein Beispiel für ein SQL-Injektion-Hack:

'; Wählen Sie * von Kunden;

Der obige Code beendet die Eingabe in das Textfeld ein und versucht, eine Abfrage ausführen, die Daten aus der Tabelle Customers stiehlt.

3 Klicken Sie auf "Abschicken", auf dem Formular die fehlerhafte Eingabe-Anweisung an den MySQL-Server senden. Wenn Ihre Seite anfällig für SQL Injection ist, wird ein Fehler zurückgegeben. Wenn Sie schwere Sicherheitslücken auf Ihrem Server haben, sehen Sie eine Liste von Kunden aus der Tabelle.

4 Öffnen Sie die PHP-Seite, die die SQL-Anweisung enthält, die in Ihrem bevorzugten PHP-Editor den Fehler zurückgegeben. Unten Sie auf der Seite auf die dynamische SQL-Anweisung.

5 Fügen Sie eine zusätzliche Zeile, auf die PHP-Abfrage-Variable. Zum Beispiel, wenn Ihre dynamische Abfrage verwendet die "$query" Variable direkt hinter der Variablen zum Schutz vor SQL-Injection den folgenden Code hinzufügen:

$query = mysql_real_escape_string($query);