2016-05-07 9 views

Antwort

0

Unter der Annahme, dass Sie ADODB verwenden, um Ihre SQL-Abfragen machen könnten Sie sie wie so parametrisieren:

<% 
    Set conn = Server.CreateObject("ADODB.Connection") 
    conn.Open "some connection string" 

    set cmd = Server.CreateObject("ADODB.Command") 
    cmd.ActiveConnection = conn 
    cmd.CommandText = "SELECT * FROM some_table WHERE id = ?" 
    cmd.CommandType = adCmdText 
    cmd.Parameters.Append cmd.CreateParameter("@id", adInteger, adParamInput, request("id")) 

    set rs = cmd.Execute 
    ... 
%> 

In diesem Beispiel ist die id Parameter in der Abfrage parametrisiert werden, wie es aus Benutzereingaben kommen (request("id")) .

+0

Bedeutet dies, dass Parameter-Manipulationsangriffe verhindert wurden? –

+1

Ich bin mir nicht sicher, was "Parameter Manipulation Angriff" in diesem Zusammenhang bedeutet. Der Zweck von parametrisierten Abfragen besteht darin, Sie vor einer SQL-Injektion zu schützen, die normalerweise erreicht werden kann, wenn Benutzereingaben direkt ohne Bereinigung verwendet werden. Parametrisierte Abfragen stellen sicher, dass die Benutzereingaben ordnungsgemäß bereinigt werden, bevor sie an die Datenbank-Engine gesendet werden. –

+0

@GrigorisPapoutsis Benutzer kann weiterhin schädliche Inhalte senden, z. [XSS-Angriff] (https://en.wikipedia.org/wiki/Cross-site_scripting) - um dies zu verhindern, müssen Sie den Inhalt der Eingabe überprüfen oder sicherstellen, dass Sie ihn bei der Anzeige bereinigen. –