删除/修改泄露 IIS 版本的 IIS 10 服务器标头

删除/修改泄露 IIS 版本的 IIS 10 服务器标头

我正在尝试删除显示我的 IIS 版本的“服务器”标头。我正在使用带有 ASP.NET Core 3.0 的 IIS Express 10 并开发了一个 Web API。我尝试了以下选项,但响应中仍存在标头并显示版本:IIS 10.0。

  1. 将 HTTP 参数中的注册表项“DisableServerHeader”更改为1。它仅删除了 http.sys 模块的服务器标头,而不是 IIS 版本。

  2. 使用下面的代码应用程序主机配置<system.webServer>标签中的文件

    <rewrite>
      <outboundRules rewriteBeforeCache="true">
        <rule name="Remove Server header">
          <match serverVariable="RESPONSE_Server" pattern=".+" />
          <action type="Rewrite" value="" />
        </rule>
      </outboundRules>
    </rewrite>
    

答案1

我在这个网站上测试了这个技巧,它很有效IIS 10

https://www.saotn.org/remove-iis-server-version-http-response-header/#removeserverheader-requestfiltering-in-iis-10-0

简单的web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <security>
            <requestFiltering removeServerHeader="true" />
        </security>
    </system.webServer>
</configuration>

答案2

已经有很多很好的答案,但我想为像我这样的用户展示一种不同的方法,他们喜欢使用带有附带的“配置编辑器”的 Windows GUI IIS 管理控制台“Internet 信息服务(IIS)管理器”。

您还可以避免由于配置文件格式错误而导致 IIS 崩溃,就像其中一位评论者所遇到的情况一样。“配置编辑器”将为您应用 IIS 配置文件中的更改。此外,您可以根据需要全局或按站点设置这些设置,而无需手动编辑文件或应用 Powershell/cmd 命令。

  1. 打开“Internet 信息服务 (IIS) 管理器”。

  2. 如果要全局设置,请点击您的主服务器节点:

    选择 iis 节点

  3. 打开“配置编辑器”

    打开配置编辑器

  4. 要删除x-aspnet-version响应标头,请转到system.web >> httpRuntime >> enableVersionHeader并将其设置为false

    禁用服务器响应标头

  5. 要删除 IISserver响应标头,请转到system.webServer>>安全>>requestFiltering>>removeServerHeader并将其设置为true

    删除 IIS 服务器标头

要设置每个站点的值,只需单击要应用更改的站点,然后从那里选择配置编辑器。

答案3

以管理员身份运行:

%systemroot%\system32\inetsrv\appcmd.exe set config -section:system.webServer/security/requestFiltering /removeServerHeader:"True"  /commit:apphost

答案4

以上所有解决方案均有效...但是这是在 IIS 中删除响应标头时需要注意的要点。

适用于 ASP.net 应用程序: 方法 1 -

方法 - 2:在 webConfiguration Editor 中尝试修改键的值---system.webServer/rewrite/outboundRules rewriteBeforeCache并将其设置为 true,否则 Cache 可能会覆盖URLRequireGlobal.asax设置。

方法 3 -:(在 Global.asax 文件中)

protected void Application_PreSendRequestHeaders() 
      {
    // Remove the default Server header
    Response.Headers.Remove("Server");
    // Optionally, add your own Server header
    Response.AddHeader("Server", "My-App/1.0");
    }

方法 4:URL 重写上面已经描述过了。

相关内容