PHP漏洞防范 (四) - SQL注入攻击(SQL Injection)  

SQL注入攻击(SQL Injection)是攻击者在表单中提交精心构造的sql语句,改动原来的sql语句,如果web程序没有对提交的数据经过检查,那么就会造成sql注入攻击。

SQL注入攻击的一般步骤:

PHP漏洞防范 (四) - SQL注入攻击(SQL Injection)  

  1. 攻击者访问有SQL注入漏洞的站点,寻找注入点
  2. 攻击者构造注入语句,注入语句和程序中的SQL语句结合生成新的sql语句
  3. 新的sql语句被提交到数据库中执行 处理
  4. 数据库执行了新的SQL语句,引发SQL注入攻击

 

以前防堵方式可能都是利用 addslashes函数来将单引号'转换成\',双引号"转换成\",反斜杠\转换成\\,NULL字符加上反斜杠\等等。可是在php 5.3以后资料库连线多了PDO可以使用,为了使用PDO ORM的特性,可以利用PDO::prepare()来组合参数,这样子PDO会自动过滤不合法的字元,使用上较为便利。

 

  1. PHP漏洞防范 (一) - register_globals=On的安全性问题 
  2. PHP漏洞防范 (二) - magic_quotes_gpc=Off的安全性问题 
  3. PHP漏洞防范 (三) - 客户端脚本植入攻击 

 

相关文章