>[info]MHTML XSS攻击漏洞
大致意思就是用户在URL参数中构造了特殊结构,导致可以在页面上执行一些JS脚本,甚至在服务端执行一些危险脚本,或构造SQL注射。
解决方案: 将url参数值中的%0d、%0a、%0D、%0A 删除。严格限制URL参数输入值的格式,不能包含不必要的特殊字符(0d、%0a等)。如确实需要换行,将其转换 为输出。
在当前使用的PHP开发框架中具体的解决方案包括:
(1)、application\Config.php中配置全局参数过滤器
~~~
'default_filter' => 'trim,strip_tags,htmlspecialchars',
~~~
(2)、在接受参数输入时对应的做必要的、合理的验证和处理,比如urldecode后对应转换格式和验证
~~~
$id =$this->request->param('id',0,'intval');
if(!$id || $id<0){
$this->error('无效的参数值(id)!');
}
~~~
(3)、执行SQL时尽量使用mysql_pdo驱动的预处理模式,且使用mysql_real_escape_string处理,Tp5中防SQL注射这块已经做的比较全面。