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

03-14 11:54