【问题标题】:Browsing to .../trace.axd shows server information - PCI show stopper浏览到 .../trace.axd 显示服务器信息 - PCI show stopper
【发布时间】:2014-02-03 18:42:08
【问题描述】:

我的公司运行 PCI 合规性扫描,每次都困扰我们的是 ASP.NET 详细错误消息信息泄漏。

描述是:发现了详细的 ASP.NET 错误消息... 并且担心我们向潜在的黑客展示我们的 ASP.NET 版本、IIS 版本等。

触发此信息的原因是浏览到“oursite”/Trace.axd,如果您这样做,您会收到如下所示的跟踪错误消息:

跟踪错误说明:当前跟踪设置阻止 trace.axd 被远程查看(出于安全原因)。它可能, 但是,可以通过在本地服务器计算机上运行的浏览器查看。

在页面底部有这个:

----------------------------------- --------------------------------- 版本信息:Microsoft .NET Framework 版本:2.0.50727.4234; ASP.NET 版本:2.0.50727.4223

有趣的是,错误消息是如何禁用跟踪,您必须更改 web.config 才能看到它!我的 web.config 有(摘录):

<configuration>
  <system.web>
    <trace enabled="false" requestLimit="10" pageOutput="false" localOnly="true" />

我相信这是跟踪禁用语句的正确层次结构。我不明白为什么服务器会响应一条消息,如果跟踪被禁用,则它会被禁用。如果这是正常行为,那么为什么我们的 PCI 扫描器会抱怨泄露太多信息?

非常感谢任何帮助使其不再那么健谈的帮助。

顺便说一句,如果重要的话,我的自定义错误是这样的:

<system.web>
    <customErrors mode="Off" defaultRedirect="~/Errors/GeneralError.aspx">
        <error statusCode="404" redirect="~/Errors/PageNotFound.aspx" />
    </customErrors>

【问题讨论】:

  • 不应该&lt;customErrors mode="On"
  • 是的,当然。这是最大的部分——它不再显示细节。有没有办法根本不显示 Trace Error 页面?迈克,将您的评论复制到答案中,因为它解决了我的直接问题,所以我会给予奖励。

标签: asp.net iis-7 pci-dss


【解决方案1】:

这些解决方案都不适合我们,因为处理程序已注册并绕过 MVC 管道。我们的解决方案是在注册 mvc 处理程序之前删除处理程序。

<system.webServer>
    <handlers>    
        <remove name="TraceHandler-Integrated" />
        <remove name="TraceHandler-Integrated-4.0" />

像一个魅力一样工作,并在请求时返回 404。

【讨论】:

  • 也许对于您的情况,但对于我来说,没有必要按照 Nick Barnes 的步骤进行操作。 MikeSmithDev 快速回答了一个可行的解决方案,所以他应该是答案,而不是 7 个月后的那个 - 尽管它很可能对其他人有好处。我很高兴他也发布了他的解决方案,但说它应该是答案是不公平的。
【解决方案2】:

首先,使用以下方法确保 CustomErrors 已打开:

<customErrors mode="On" 

甚至

<customErrors mode="RemoteOnly"

至于trace.axd,您的web.config 是正确的并且拥有trace enabled="false" 应该会阻止该URL 可导航。我相信它只是显示错误信息,因为您的自定义错误页面没有被使用。

【讨论】:

  • 谢谢!有时我会深入到一个问题中,以至于我几乎不明白显而易见的答案让我无法理解。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2015-03-18
  • 2015-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-23
  • 2010-10-23
  • 1970-01-01
相关资源
最近更新 更多