1、什么是SQL注入

 

        许多网页会从用户那里获取参数,并构建SQL查询来访问数据库。以用户登录为例,页面收集用户名和密码然后构建SQL去查询数据库,来校验用户名和密码的有效性。通过SQL注入,我们可以发送经过精心编造的用户名和/或密码字段,来改变SQL查询语句并赋予 我们其它一些权限。通过SQL注入,不仅能绕过登录验证,还可能得到数据库中表的各种信息,参数常存在于需要用户提交的表单或浏览器地址中。

 

2、参数来源

 

       需要用户提交的表单

       URL中的参数

       cookie

 

3、预防

 

        a .不要相信用户输入:过滤参数中的单引号、双引号、斜杠、反斜杠、分号等字符;以及NULL、回车符、换行符等扩展字符。

 

        b .应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装,把异常信息存放在独立的表中。

 

4、典型SQL注入

 

        .类    ’ or 1=1

        " or 1=1--

        or 1=1--

        ' or 'a'='a 

        " or "a"="a