【问题标题】:Remove ASP.NET Version Information from error screen when Host is change更改主机时从错误屏幕中删除 ASP.NET 版本信息
【发布时间】:2020-10-27 17:24:24
【问题描述】:

在笔测试期间,我们收到了一个漏洞。复制步骤是将主机(比如说 google.com)更改为不同的域,然后点击 URL。然后显示以下屏幕,

此处显示的是 dot net 框架的版本信息。我浏览了互联网上的各种 atricals,他们要求在 web.config 中使用

这个标签已经存在于 web.config 中,当我们点击 url 而不更改 Host 时,它显示 error.aspx 页面,但是当我们更改 Host 时,它显示附加页面。在附加图像中提到了版本信息,我想得到摆脱它。

同样在测试环境中,版本信息不显示资源未找到消息。除了 customErrors 标签之外,还有什么方法可以删除版本信息。请帮帮我。我们使用的是 IIS 10。

【问题讨论】:

  • 您对 customErrors 做了什么尝试?你没有在你的问题中表明这一点。
  • 哦,对不起,我错过了。所以这里 。当我在不更改主机的情况下尝试网站 url 时,它会给出正确的 error.aspx 页面,但是当我们将主机更改为不同的东西并尝试点击 url 时,它会显示上述 Dot Net Framework 版本的错误。

标签: c# asp.net iis


【解决方案1】:

您已经在 web.config 中使用的标签可能是 <customErrors> 标签。这对于可以在 .Net 级别捕获的错误非常有用。

但是对于不进入 .Net 管道的错误,您需要为 404 错误配置 IIS 错误页面。这可以通过 web.config 的 <system.webServer><httpErrors> 部分完成。例如,要返回您在网站根目录中找到的 my-iis-404-page.htm 的内容,您可以使用:

<system.webServer>
       <httpErrors errorMode="Custom" existingResponse="Auto">
          <error statusCode="404" subStatusCode="" prefixLanguageFilePath="" path="my-iis-404-page.htm" responseMode="File" />
       </httpErrors>
</system.webServer>

此配置也可以通过 IIS gui 完成。有关 IIS 的 httpErrors 方面的更多信息,请参阅https://docs.microsoft.com/en-us/iis/configuration/system.webserver/httperrors/

【讨论】:

  • 谢谢,罗恩,我在 web.config 中检查了它已经存在。在调查该问题时,我发现由于我们在此处更改主机标头,因此请求未在 IIS 服务器日志中捕获。这可能吗?如果我穿坏了,请纠正我。
  • 不知道我明白你在问什么。我提供的解决方案不会更改主机标头,它所做的是在 IIS 级别捕获错误并返回您选择的错误页面,该页面是与.Net 无关的纯 html 页面,因此不能任何 Asp.Net 标头信息,因为 .Net 与页面无关,它纯粹是 IIS 响应。
  • 当我们更改请求中的主机并触发 url 时,它会请求它转到 IIS 的默认网站。由于上述错误页面正在显示。但我不确定如何处理这种情况?我应该从 IIS 服务器中删除默认网站,这样它就不会查找请求的内容并会给出错误 404 NOT FOUND
  • 你需要用我说的方法来处理它。花一些时间使用 IIS 来了解如何在一个只有一两个.html 页面并且根本不使用 asp.net 的简单网站的上下文中返回错误页面。一旦您了解了如何使用 IIS GUI 或 web.config 的 IIS 部分来配置 IIS 错误页面,那么您还将了解如何让 IIS 在 asp.net 请求未到达 asp.net 的情况下返回错误页面。例如:ntweekly.com/2017/07/14/… 和我已经提到的 Microsoft 文档。
  • 我试过你的解决方案,但它给出了同样的错误,然后我厌倦了在默认网站的 web.config 中添加 标记,所以它现在允许如果主机更改,我的网站要呈现的自定义错误。感谢您的帮助。
【解决方案2】:

如果要从 ASP.NET 的每个响应中删除 X-Aspnet-Version HTTP 标头,请将以下代码添加到 web.config 文件中。

<system.web>
  <httpRuntime enableVersionHeader="false" />
</system.web>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多