Wie mithilfe von Sp_Executesql SQL-Injektionen zu kämpfen
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.