FavoriteLoading
0

重蔚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页面中:

 

欢迎分享本文,转载请保留出处!—重蔚自留地 站长邮箱:951076433@qq.com