【发布时间】: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>
【问题讨论】:
-
不应该
<customErrors mode="On"? -
是的,当然。这是最大的部分——它不再显示细节。有没有办法根本不显示 Trace Error 页面?迈克,将您的评论复制到答案中,因为它解决了我的直接问题,所以我会给予奖励。