程序开发过程中不注意规范书写sql 语句和对特殊字符进行过滤,导致客户端可以通过全局变量
POST 和GET 提交一些sql 语句正常执行。产生Sql 注入。下面是防止办法:
- 过滤掉一些常见的数据库操作关键字,或者通过系统函数来进行过滤。
- 在PHP 配置文件中将Register_globals=off;设置为关闭状态
- SQL 语句书写的时候尽量不要省略小引号(tab 键上面那个)和单引号
- 提高数据库命名技巧,对于一些重要的字段根据程序的特点命名,取不易被猜到的
- 对于常用的方法加以封装,避免直接暴漏SQL 语句
- 开启PHP 安全模式:Safe_mode=on;
- 打开magic_quotes_gpc 来防止SQL 注入
- 控制错误信息:关闭错误提示信息,将错误信息写到系统日志。
- 使用mysqli 或pdo 预处理。