建站代码网

热门标签

ASP使用参数化查询数据库

关键词

ASP使用参数化查询数据库

摘要

<p>ASP连接数据库时容易出现漏洞,导致SQL注入攻击!使用参数化查询可以很好的解决这个问题。<br /><br />例子:<br /><br />dim sql,c<br />sql="select top 1 1 from domains where d_name=? or d_name like '%.'+?"<br />set c=Server.CreateObject("adodb.command")<br />c.commandType=1<br />c.commandText=sql<br />set c.ActiveConnection=conn<br />c.parameters.append c.createparameter("d_name1",200,1,124,d)<br />c.parameters.append c.createparameter("d_name2",200,1,124,d)<br />set r=c.execute()<br />set c.ActiveConnection=nothing<br />set c=nothing<br /><br />·基本格式见例子中的展示,使用adodb.command来执行SQL语句,并把参数在SQL语句中以问号(?)出现,再使用parameters集合的Append方法来给参数附加值。<br /></p>


ASP连接数据库时容易出现漏洞,导致SQL注入攻击!使用参数化查询可以很好的解决这个问题。

例子:

dim sql,c 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

热门信息

X