在asp中如何有效防范sql漏洞注入
SQL注入漏洞的原理是在查询的基础上创建新的查询构造字符串来达到入侵的目的.一般分GET和POST两种.

1、GET方式
GET 方式一般是 http://www.xpasp.cn/aaa.asp?id=1 and .....
就是这种方法。
对于这种方法可是在接收数据的时候采用
dim id
id = Trim(Request.QueryString("id"))
id = cint(id)
但是这种方法虽然屏蔽了漏洞,但是在页面还显示错误。
而使用
If Not IsNumeric(id) Then
Response.Redirect(..转向地址..)
End If
就可以达到目的。
以上是对于数字型,如果对于字符型,当然最好不要用字符型。一来检查消耗比较大,二来可能会逻辑不完善,如果非用不可那么写个函数过滤掉and ,select,delete,',",update,等敏感字眼。当然过滤的时候还得注意大小写。
2、POST方式
POST方式必须得过滤,但是如何过滤呢?如果用户名是Eand这也是合法的。我们可以过滤空格,过滤'和"。还有最好用正则表达式。
我还发现一个有趣现象,比如,你GET方式name=aaa当别人提交name = aaa and .....的时候你接收的时候用个Cstr函数,接收到的名字会变成字符的aaa and ...而且注入不起作用。但是这种方法对于用Asc2码构造的好象有点危险。
本文来源 我爱IT技术网 http://www.52ij.com/jishu/1707.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
