HTTP TRACE 方法是安全漏洞吗?

信息安全 http
2021-08-29 19:50:39

我在这个网站上看到很多帖子都提出了关于禁用 HTTP TRACE 方法以防止跨站点跟踪的建议。我试图做同样的事情。但是当我阅读Apache 文档时,它给出了相反的建议:

笔记

尽管有相反的说法,但 TRACE 不是安全漏洞,也没有可行的理由将其禁用。这样做必然会使您的服务器不合规。

我应该遵循哪个?

3个回答

最明智的安全原则之一是禁用未使用的内容。

所以第一个问题是:你真的要使用它吗?您需要启用它吗?

如果您不打算使用TRACE方法,那么我认为应该将其关闭。它不仅可以防止您的应用程序受到XST的攻击,而且还可以防止与此通道相关的未发现漏洞,这些漏洞将来会被发现。

为了向给TRACE定服务器发送命令,您必须有权这样做,这通常被同源策略(著名的“SOP”)阻止。如果一段恶意的 JavaScript,意图在网站上窃取您的 cookie example.com,能够向 发送TRACE请求example.com,那么该恶意 JavaScript 已经获胜,您将陷入更深的麻烦。禁用TRACE并不能解决真正的问题(这个问题是客户端的)。

打个无耻的类比:有些人用刀刺伤他人来谋杀他人。禁刀真的能解决问题吗?(我在这里使用的是刀而不是枪,因为很明显,刀对于杀人以外的任务来说是非常有用的工具,例如,我每天都用刀做饭;枪也不能这样说。同样,HTTPTRACE方法是一个有用的调试工具。)

我应该遵循哪个?

您将要扫描您的网站,什么... 每年?季刊?每月,每周?这将出现在所有这些扫描中。直到您告诉您的扫描仪跳过该检查或进行例外处理...此时它将坐在那里,直到您有第三方为您运行扫描,或者您的合作伙伴之一扫描您的站点并将其置于你的鼻子就像“你怎么能不解决这样一个基本的清单项目?

相反,您将被扫描是否符合 HTTP 规范……永远不会。您将需要实际使用 TRACE ......几乎永远不会。对与您的客户的互操作性的实际影响将是……nada。

我理解并同意@Tom-Leek 的观点,即这不是什么安全问题。但是,我不同意禁用它的缺点是微乎其微的,禁用它的好处是避免很多烦恼,否则这些烦恼最终会落在你的腿上。

我不是唯一一个这样想的人——这就是为什么 Apache 在 1.3.34 和 2.0.55 中添加了一个指令来简单地关闭 TRACE:

TraceEnable Off

这是一个讨论它的好页面,包括手动测试步骤。