SQL注入攻击的根源是因为SQL规范的漏洞,但是,因为规范的长期存在以及使用,几乎已经不太可能去修改规范了,只能够从开发者本身去避免攻击,虽然SQL注入之前很严重,但现在相对控制的很好,这里仅仅作为一种学习的内容。
测试过程如下:
1:搭建PHP,mysql开发环境,可以详见我的另一篇博客自定义开发PHP环境
2:添加数据库,表,以及表内容。
3:分别测试
万能密码,万能用户名
数字注入
测试如下:
万能密码:password ’ or 1=’1 (password可以任意的填写,注:这里如果粘贴的话会有编码问题,自己修改)
万能用户名:xx’ union select * from testuser/*(mysql5.6版本测试没有此问题)
数字注入同用户名注入,仅数字提交。
如何防止SQL注入呢?
1:修改服务器配置:修改magic_quotes_gpc 设置为on(php5.3以上版本没有这个设置)
2:在代码层进行修改,可以使用更为严格的验证方法;
3:使用pdo预编译处理。
原文地址:http://blog.csdn.net/mycodedream/article/details/46484561