重蔚php学习第三十三天——解决sql注入攻击问题

什么是sql注入攻击?

 image029

上面代码主要用于验证用户名是否正确,主要需要数据库的查询,如果用户在文本框中:输入:韦小宝

select * from user where username=’韦小宝’

但如果,用户在文本框中输入:

image030

那么,sql语句的组合就变成:

image031

以上就是sql注入攻击的一种。

如何解决?

1)由于sql中的单引号的特殊性,所以我们要对用户输入的内容进行过滤。

image032

如果,用户输入的内容中包含字符“’”,”””,”\”这些特殊字符时,会进行自动转义,在特殊字符前面加上“\”

2)在php.ini配置文件中,可以配置用户提交数据的魔术转义

image033

这个选项如果开启:magic_quotes_gpc=on

会对用户提交的数据自动进行转义

4)使用自动过滤函数,对用户提交的数据($_POST、$_GET)进行过滤

第一种:过于麻烦,如果表单内元素比较多,实现过程麻烦

第二种:由于高版本中会默认关闭此选项,我们对服务器往往没有配置权限

image034

定义公共文件,封装魔术转义函数

image035

在处理表单或url数据的php页面中:

 

本文来自投稿,不代表科技代码立场,如若转载,请注明出处https://www.cwhello.com/2639.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
上一篇 2017年10月10日 08:38
下一篇 2017年10月10日 17:54

相关推荐

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息