Sql注入防护

宽字节注入

对于宽字节编码,有一种最好的修补就是:

(1)使用mysql_set_charset(GBK)指定字符集

(2)使用mysql_real_escape_string进行转义

原理是,mysql_real_escape_string与addslashes的不同之处在于其会考虑当前设置的字符集,不会出现前面e5和5c拼接为一个宽字节的问题,但是这个“当前字符集”如何确定呢?

就是使用mysql_set_charset进行指定。

scape_string进行转义

原理是,mysql_real_escape_string与addslashes的不同之处在于其会考虑当前设置的字符集,不会出现前面e5和5c拼接为一个宽字节的问题,但是这个“当前字符集”如何确定呢?

就是使用mysql_set_charset进行指定。

字符型注入

mysql_real_escape_string()过滤
str_length()限制输入的字符长度

数字型注入

数字型的注入漏洞防护
is_numeric(),ctype_digit(),intval() 正则表达式
str_length()限制输入的字符长度

报错注入

关闭报错
使用@

命令执行

使用
escapeshellarg、escapeshellcmd
函数

猜你喜欢

转载自blog.csdn.net/hxhxhxhxx/article/details/109149757