Azure WebApp 删除错误请求的 'Server' header

标签 azure iis http-headers azure-web-app-service

网址如: yourDomain.com/%

抛出错误:400 错误请求

a)-这不会进入应用程序请求周期,而是由 HTTP.SYS 处理并显示服务器 header 如下:Microsoft-HTTPAPI/2.0

b)-此外,如果您使用 burp 拦截器更改主机地址,则会抛出带有服务器 header 的 404 错误,如下所示:Microsoft-IIS/10.0

我已经检查过以下网址: Removing Server and X-Powered-By HTTP Headers on Azure Web Site Preview

但以下 Azure 票证显示 AG 允许从响应中删除 header : https://feedback.azure.com/forums/217313-networking/suggestions/16487725-remove-server-framework-headers-from-application-g

但没有显示如何实现它,以便当请求不属于应用程序请求周期时可以删除“服务器” header 。

门票的情况也是如此: Remove sensitive Headers from Azure PaaS hosted Websites

请注意,该应用程序托管在 Azure WebApp(而不是 VM)中。

简而言之,我想在上述 2 个场景中隐藏/更改 Azure WebApp 中托管的应用程序的“服务器” header 。

最佳答案

要在基于 Windows/IIS 的 Azure Web 应用程序中删除服务器 header 或由 header 提供支持,您需要添加包含以下内容的 web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <remove name="X-Powered-By" />
      </customHeaders>
    </httpProtocol>
    <security>
      <requestFiltering removeServerHeader="true" />
    </security>
  </system.webServer>  
</configuration>

如果您使用的是基于 Linux/Kestrel 的系统,则需要将 Program.cs 文件中的 CreateHostBuilder 更改为如下所示:

        public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder
                   .UseKestrel(options => options.AddServerHeader = false)
                   .UseStartup<Startup>();
            });

关于Azure WebApp 删除错误请求的 'Server' header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51941449/

相关文章:

asp.net - System.Drawing:GDI+ 未正确初始化(​内部 GDI+ 错误​)

ruby-on-rails - IIS上的Ruby on Rails?

javascript - http header ajax 范围始终提供完整的站点

php - 嵌入位于 webroot 之外的 flv 和 swf

Blob 中的 Azure ML 工作台文件

azure - 如何将 Kusto 查询输出解析为自动化脚本(Powershell 或 Python)

azure - 从 Azure 逻辑应用中的 http 响应提取文件

c# - Azure webjob调用内部服务

asp.net - NuGet: 'X' 已具有为 'Y' 定义的依赖项

php - 仅在某些连接上出现 400 错误