浏览到... / trace.axd显示服务器信息 - PCI show stopper

时间:2014-02-03 18:42:08

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

我的公司运行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有(exerpt):

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

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

任何使它停止如此健谈的帮助非常感谢。

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

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

2 个答案:

答案 0 :(得分:12)

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

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

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

答案 1 :(得分:2)

首先,使用以下命令确保CustomErrors已启用:

<customErrors mode="On" 

甚至

<customErrors mode="RemoteOnly"

对于trace.axd,您的web.config是正确的,并且trace enabled="false"应该保持该网址不可导航。我相信它只显示错误信息,因为您的自定义错误页面未被使用。