网站地图    收藏   

主页 > 后端 > 网站安全 >

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

来源:自学PHP网    时间:2015-04-17 11:59 作者: 阅读:

[导读] 原理很简单,数据库字符类型就只有几种。我们常用的就是数值,和字符串,还有时间。我们一般用到查询的为数值,和字符串。字符串查询格式为 where 字段=#39;查询条件#39; 这里无法注入,因...

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

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论