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

 

文章的版权

洪哥写文章很苦逼,如果本文对您略有帮助,点击感兴趣的广告支持洪哥!万分感谢!本文属于“洪哥笔记”原创文章,转载请注明来源地址:ASP使用参数化查询数据库:http://www.splaybow.com/post/asp-db-parameter-query.html

关注与收藏

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:115085382!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D


« ASP、VB、VBScript列出Windows用户和组 使用VBScript检测文本文件的编码 »

相关文章: