【发布时间】:2016-05-07 12:47:26
【问题描述】:
是否可以通过在经典 asp 中使用参数化查询来防止参数篡改。如果不是正确的预防方法是什么?
谢谢。
【问题讨论】:
标签: parameters asp-classic parameterized tampering
是否可以通过在经典 asp 中使用参数化查询来防止参数篡改。如果不是正确的预防方法是什么?
谢谢。
【问题讨论】:
标签: parameters asp-classic parameterized tampering
假设您使用 ADODB 进行 SQL 查询,您可以像这样对它们进行参数化:
<%
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
...
%>
在此示例中,查询中的 id 参数被参数化,因为它来自用户输入 (request("id"))。
【讨论】:
parameter tampering attack 在这种情况下是什么意思。参数化查询的目的是保护您免受 SQL 注入的影响,这通常可以在直接使用用户输入而不进行清理的情况下实现。参数化查询将确保用户输入在发送到数据库引擎之前得到适当的清理。