如果“发现服务器启用了 TRACE Method”

360网站安全检测报告水景一页的服务器启用了 TRACE Method,提示说这是一个轻微级别的安全威胁(WASC Threat Classification,Web 应用程序安全协会/威胁分类)。我第一次听说这个安全威胁,赶紧问了问 Google,结果发现 Apache 官网上对这个问题的观点有所不同。于是我决定保持原样不变。

360网站安全检测里对 TRACE Method 的解释为:

漏洞类型:其他
所属建站程序:其他
所属服务器类型:通用
所属编程语言:其他
描述:
目标WEB服务器启用了TRACE Method。
1.TRACE_Method 是HTTP(超文本传输)协议定义的一种协议调试方法,该方法会使服务器原样返回任意客户端请求的任何内容。
2. 由于该方法会原样返回客户端提交的任意数据,因此可以用来进行跨站脚本(简称XSS)攻击,这种攻击方式又称为跨站跟踪攻击(简称XST)。
危害:
1. 恶意攻击者可以通过TRACE Method返回的信息了解到网站前端的一些信息,如缓存服务器等,从而为下一步的攻击提供便利。

同时它也提供了解决方案:

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确定虚拟主机的配置文件

IBM 网站上对此 TRACE Method 的问题有比较详细的描述

但是我同时查阅了 Apache 官网对 TraceEnable 参数(控制是否启用 Trace method 的 Apache 配置选项)的描述。在 Apache 2.4(现在主流的应该还是 2.2 版) 的文档中增加了下面的说明:

Despite claims to the contrary, TRACE is not a security vulnerability and there is no viable reason for it to be disabled. Doing so necessarily makes your server non-compliant.

翻译过来就是:

虽然有很多声明与此相反,TRACE 并不是一个安全漏洞,并且也没有可行的理由来禁用它。这样做必然使你的服务器兼容性变差。

所以我决定遵照 Apache 的提醒继续保持 TraceEnable 参数为默认的 on 状态,使 Trace Method 可用。©

本文发表于水景一页。永久链接:<http://cnzhx.net/blog/trace-method-issue/>。转载请保留此信息及相应链接。

雁过留声,人过留名

您的电子邮箱地址不会被公开。 必填项已用 * 标注

特别提示:与当前文章主题无关的讨论相关但需要较多讨论求助信息请发布到水景一页讨论区的相应版块,谢谢您的理解与合作!请参考本站互助指南
您可以在评论中使用如下的 HTML 标记来辅助表达: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>