ASP的SQL防注入新方法,不用监测注入字符

原理很简单,数据库字符类型就只有几种。我们常用的就是数值,和字符串,还有时间。 
我们一般用到查询的为数值,和字符串。 
字符串查询格式为 where 字段='查询条件' 这里无法注入,因为这里加了单引号,查询条件转化为字符串类型,而不是有效的SQL语句。 
而注入 漏洞就存在于不加单引号的查询条件中,就是数值查询条件。这里查询格式为 where 字段=查询条件 没了单引号,就出现了注入漏洞。接下来我们就要解决这个漏洞了。 
传统的方法是屏蔽注入字符,但是带来了很多不便。 
现在我教大家两个新方法。 
1,加单引号:查询格式变为 where cstr(字段)='查询条件' 这里将 数据库里要查询的内容转换为字符串,所以后面要加上单引号,这里防止了注入。 
2,先检测查询条件的类型:用isnumeric()函数,检测是否为数值,如果是再执行,数据库操作。这里就杜绝了所有字符串,更别说注入字符了。 
讲完了,希望对大家有所帮助。 
续:数据库查询中数值查询中 where 字段=查询条件,这里不能加单引号,除非这样 where cstr(字段)='查询条件' 
法1大家谈论下吧,我觉得好象有点问题。发2我认为可行。 
法1我临时想到的。发2我摸索了一段时间突然发现的,而且我正在用,非常好。​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值