程序开发过程中不注意规范书写sql 语句和对特殊字符进行过滤,导致客户端可以通过全局变量,POST 和GET 提交一些sql 语句正常执行。产生Sql 注入。

 

下面是防止办法:

 

1、过滤掉一些常见的数据库操作关键字,或者通过系统函数来进行过滤。

 

2、在PHP 配置文件中将Register_globals=off;设置为关闭状态。

 

3、SQL 语句书写的时候尽量不要省略小引号(tab 键上面那个)和单引号。

 

4、提高数据库命名技巧,对于一些重要的字段根据程序的特点命名,取不易被猜到的。

 

5、对于常用的方法加以封装,避免直接暴漏SQL 语句。

 

6、开启PHP 安全模式:Safe_mode=on。

 

7、打开magic_quotes_gpc 来防止SQL 注入。

 

8、控制错误信息:关闭错误提示信息,将错误信息写到系统日志。

 

9、使用mysqli 或pdo 预处理。