sql注入产生的原因是在开发过程中没有注意书写规范的sql和没有对特殊字符进行过滤,从而导致客户端通过全局变量POST和GET提交一些sql语句正常执行,从而达到sql注入的攻击目的,可以通过以下方法来防止sql注入:
1、开启配置文件中的magic_quotes_gpc和magic_quotes_runtime设置。
2、执行sql语句时使用addslashes进行sql语句转换。
3、sql语句书写尽量不要省略小引号和单引号。
4、过滤掉sql语句中的一些关键字:update、insert、delete、select、* 等。
5、提高数据库表和字段的命名技巧,对一些重要的字段根据程序的特点命名,取不易被猜到的。
6、Php配置文件中设置register_globals为off,关闭全局变量注册。
7、控制错误信息,不要再浏览器上输出错误信息,将错误信息写到日志文件中。