ASP连接数据库时容易出现漏洞,导致SQL注入攻击!使用参数化查询可以很好的解决这个问题。
sql="select top 1 1 from domains where d_name=? or d_name like '%.'+?"
set c=Server.CreateObject("adodb.command")
c.commandType=1
c.commandText=sql
set c.ActiveConnection=conn
c.parameters.append c.createparameter("d_name1",200,1,124,d)
c.parameters.append c.createparameter("d_name2",200,1,124,d)
set r=c.execute()
set c.ActiveConnection=nothing
set c=nothing
・基本格式见例子中的展示,使用adodb.command来执行SQL语句,并把参数在SQL语句中以问号(?)出现,再使用parameters集合的Append方法来给参数附加值。
・如果有多个参数,就在sql语句中使用多个问号(?)
・如果是Like或In这样运算符中出现参数,使用加号(+),把字符部分和问号分开
・在存储过程中,遇到Like的,也使用加号(+)来串字符串,不要直接把@VAR写到两个单引号之间去了
ADO的常用DataType
---------------------------------------//我个人觉得,应该是要记住的
200 varchar
3 int
16 tinyint
6 currency
135 adDBTimeStamp
129 adChar