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")
) .
Bedeutet dies, dass Parameter-Manipulationsangriffe verhindert wurden? –
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. –
@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. –