好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

 原理很简单,数据库字符类型就只有几种。我们常用的就是数值,和字符串,还有时间。 

我们一般用到查询的为数值,和字符串。 

字符串查询格式为 where 字段='查询条件' 这里无法注入,因为这里加了单引号,查询条件转化为字符串类型,而不是有效的SQL语句。 

而注入 漏洞 就存在于不加单引号的查询条件中,就是数值查询条件。这里查询格式为 where 字段=查询条件 没了单引号,就出现了注入漏洞。接下来我们就要解决这个漏洞了。 

传统的方法是屏蔽注入字符,但是带来了很多不便。 

现在我教大家两个新方法。 

1,加单引号:查询格式变为 where cstr(字段)='查询条件' 这里将 数据库 里要查询的内容转换为字符串,所以后面要加上单引号,这里防止了注入。 

2,先检测查询条件的类型:用isnumeric()函数,检测是否为数值,如果是再执行,数据库操作。这里就杜绝了所有字符串,更别说注入字符了。 

讲完了,希望对大家有所帮助。 

续:数据库查询中数值查询中 where 字段=查询条件,这里不能加单引号,除非这样 where cstr(字段)='查询条件' 

法1大家谈论下吧,我觉得好象有点问题。发2我认为可行。 

法1我临时想到的。发2我摸索了一段时间突然发现的,而且我正在用,非常好。​

 

查看更多关于ASP的SQL防注入新方法,不用监测注入字符 - 网站安的详细内容...

  阅读:49次