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 off2)如果你使用的是 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 可用。©
本文发表于水景一页。永久链接:<https://cnzhx.net/blog/trace-method-issue/>。转载请保留此信息及相应链接。