Wie mithilfe von Sp_Executesql SQL-Injektionen zu kämpfen

September 22

SQL Server gespeicherten Prozedur Sp_executesql führt dynamische SQL-Anweisungen in einer Anwendung erstellten. SQL-Injection ist eine Kerbe, die Benutzern erlaubt, Ihre SQL-Datenbank zugreifen. Verwenden Sie die Sp_executesql gespeicherten Prozeduren zusammen mit der "Ersetzen"-Funktion, um das einfache Anführungszeichen zu ersetzen, die zur Ausführung von Schadcode auf Ihrem Server verwendet wird.

Anweisungen

1 Klicken Sie auf die Windows-Schaltfläche "Start" und wählen Sie "Alle Programme". Klicken Sie unter "SQL Server" auf "SQL Server Management Studio" um die Software zu öffnen.

2 Geben Sie Ihren Benutzernamen und Passwort in den SQL Server-Log-in Bildschirm auf die Datenbanken zugreifen. Klicken Sie auf eine Datenbank, die Sie Abfragen und wählen "Neue Abfrage" um den Editor öffnen möchten.

3 Erstellen einer dynamischen SQL-Abfrage. Der folgende Code erstellt eine dynamische Abfrage, die Anführungszeichen innerhalb der Anweisung enthält:

Deklarieren Sie @query als vom Datentyp nvarchar(500)Legen Sie @query = ' wählen Sie Namen von Kunden wo Signupdate ='' 01.01.2011 '''

In diesem Beispiel konnte ein Hacker Zitate in der "wo"-Klausel eingefügt, die Ursachen von Störungen in der SQL-Abfrage.

4 Verwenden der gespeicherten Prozedur Sp_executesql mit der Replace-Funktion SQL-Injection zu vermeiden. Geben Sie den folgenden Code in den Editor:

Sp_executesql ersetzen (@query, ' \'', ''')

Der Code ersetzt jedes einzelnes Anführungszeichen durch ein doppeltes Anführungszeichen, das die Möglichkeit für SQL Injection beseitigt.

5 Drücken Sie die F5-Taste zum Ausführen der Anweisung. Die SQL-Anweisungen ausführt und die Ergebnisse der Abfrage anzuzeigen im Ergebnisfeld.