当前位置 : 主页 > 网络编程 > ASP >

asp-classic – 在经典的asp-reposting表单上捕获SQL注入会产生大量的问题

来源:互联网 收集:自由互联 发布时间:2021-06-24
我正在使用带有经典ASP的SQL Server 2005和表单转发(我回发到同一页面),我将每个文本字段替换如下: course = trim(replace(request("course"),"'","''"))\ 这个问题是如果我必须在验证错误的情况下多
我正在使用带有经典ASP的SQL Server 2005和表单转发(我回发到同一页面),我将每个文本字段替换如下:

course = trim(replace(request("course"),"'","''"))\

这个问题是如果我必须在验证错误的情况下多次重新发布表单,我会替换多次刻度标记.

有没有另一种方法来安全地审查字符串字段而不进行这种替换?

您最好使用参数化查询:

dim cmd : set cmd = server.createObject("ADODB.Command")
dim param
dim sql : sql = "INSERT INTO table(course) VALUES (?)"
cmd.ActiveConnection = yourDBconnection
cmd.CommandType = adCmdText

set param = cmd.CreateParameter("course", adVarChar, , 20, request("course"))
cmd.Parameters.Append param

cmd.CommandText = sql
cmd.Execute

所以你用sql注入是完全安全的

网友评论