如果“发现服务器启用了 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 可用。©

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

时间过去太久,评论已关闭。
如果您有话要说,请到讨论区留言并给出此文章链接。
谢谢您的理解 :-)