我使用的是SQL Server 2005传统的ASP和形式重新发布(我回发到同一页),我替换每个文本字段,如下所示:
course = trim(replace(request("course"),"'","''"))\
Run Code Online (Sandbox Code Playgroud)
这个问题是如果我必须在验证错误的情况下多次重新发布表单,我会替换多次刻度标记.
有没有另一种方法来安全地审查字符串字段而不进行这种替换?
您最好使用参数化查询:
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
Run Code Online (Sandbox Code Playgroud)
所以你用sql注入是完全安全的