http://webscan.360.cn 扫出来的
第一个修补思路:
-修复的基本思路:
限制用户输入的CR(回车符,ASCII 0x0d)和 LF(换行,ASCII 0x0a)字符,或者对CR(回车符,ASCII 0x0d)、 LF(换行,ASCII 0x0a)字符正确编码后再输出,以防止注入自定义HTTP头。
-PHP语言的解决方案:
这种现象往往表现在带有参数传递的网页,只要合理的过滤好就OK啦,PHP语言的一些过滤方法:
$post = trim($post);
$post = strip_tags($post,""); //清除HTML等代码
$post = ereg_replace("\t","",$post); //去掉制表符号
$post = ereg_replace("\r\n","",$post); //去掉回车换行符号
$post = ereg_replace("\r","",$post); //去掉回车
$post = ereg_replace("\n","",$post); //去掉换行
$post = ereg_replace(" ","",$post); //去掉空格
$post = ereg_replace("'","",$post); //去掉单引号
第二个修补思路:
禁用 Web 服务器中的 HTTP TRACE 支持。 针对 Apache Web 服务器和 Microsoft IIS 的可能的变通方法如下:
- Apache HTTP Server:利用 Apache mod_rewrite 模块来拒绝 HTTP TRACE 请求,或只允许符合网站需求和策略的方法。
- Microsoft Internet Information Services(IIS):利用 URLScan 工具来拒绝 HTTP TRACE 请求,或只允许符合站点需求和策略的方法。
1)2.0.55以上版本的Apache服务器,可以在httpd.conf的尾部添加:
TraceEnable off
2)如果你使用的是Apache:
- 确认rewrite模块激活(httpd.conf,下面一行前面没有#):
LoadModule rewrite_module modules/mod_rewrite.so
- 在各虚拟主机的配置文件里添加如下语句:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]
注:可以在httpd.conf里搜索VirtualHost确定虚拟主机的配置文件。
阅读全文
收起全文