sql的注入是一个很困扰人的问题,一些恶意攻击者可以利用sql注入来获取甚至是修改数据库中的信息,尤其是一些比较敏感的密码一类的数据。
sql注入主要利用mysql 的注释将后续应正常执行的语句注释掉以达到恶意攻击者的目的
还可以通过使用‘的方式来打断sql语句的执行
还可以通过通过输入or 1=1这样的语句来改变原有的sql判断语句来进行攻击
当然,有攻击必然会有防御
PHP中可以使用PDO、预编译来防止sql注入的攻击必要时我们还可以借助存储过程当然存储过程在web开发中很少用到。
也可以使用正则表达式和PHP的一些内置函数来过滤掉一些非法字符
主要有一下几个方面来进行操作:
1.整理数据使之变得有效。
2.拒绝一致的非法数据。
3.只接受合法数据。
我们可以使用正则表达式来过滤这些字符:
“’”、“;”、“=”、“(”、“)”、“/*”、“*/”、“%”、“+”、“”、“>”、“<”、“--”、“[”、“]”
还可以结合PHP通过做判断来防止sql的注入:
我们可以将参数划分为数字或字符类型和其他类型两种来做不同正则判断,来防止sql的注入。
同样也可以根据自己的需求来指定属于自己的正则表达式来防止sql注入。
原文地址:http://www.cnblogs.com/hxjz/p/6942547.html