ASP防SQL注入的方法
发布时间:2009-2-17 16:46:00   收集提供:shendata
前一篇我们介绍了一种防SQL注入的终极方法,也就是最原始、最简单、最有效也是最通用的方法,就是数据类型的检查加单引号的处理,具体的内容前面一篇已经介绍过了,这里我就不重复了,下面我们将要介绍另一种在ASP里防SQL注入攻击的方法,该方法不仅仅在ASP里适用,实际上可以在任何使用ADO 对象模型与数据库交互的语言中,准确的说称之为基于ADO对象模型的防SQL注入的方法或许更恰当些。好了废话不说了,来看看代码

  Dim conn,cmd,pra

  set conn=server.createobject("adodb.connection")

  conn.Open "…………" '这里省略数据库连接字

  set cmd=server.createobject("adodb.Command")

  set pra=server.createobject("adodb.Parameter")

  cmd.ActiveConnection = conn

  cmd.CommandText = "update news set title=? where id =?"

  cmd.CommandType = adCmdText

  Set pra = cmd.CreateParameter("title", adVarWChar, adParamInput, 50, "1'2'3")

  cmd.Parameters.Append pra

  Set pra = cmd.CreateParameter("id", adInteger, adParamInput, , 10)

  cmd.Parameters.Append pra

  cmd.Execute

  news表的id字段是Integer型的,title字段是nvarchar(50)型的,执行的结果是把news表中id字段为10的记录的title字段的内容改成“1'2'3”

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50