宽字节注入
对于宽字节编码,有一种最好的修补就是:
(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
函数