【问题标题】:Azure WebApp remove 'Server' header for bad requestsAzure WebApp 删除错误请求的“服务器”标头
【发布时间】:2019-01-27 05:09:58
【问题描述】:

以下网址: yourDomain.com/%

抛出错误:400 错误请求

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

b)-此外,如果您使用 burp 拦截器更改主机地址,则会引发 404 错误,服务器标头如下:Microsoft-IIS/10.0

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

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

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

票证也是如此: Remove sensitive Headers from Azure PaaS hosted Websites

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

因此,简而言之,我想在上述 2 个提到的 Azure WebApp 中托管的应用场景中隐藏/更改“服务器”标头。

【问题讨论】:

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


    【解决方案1】:

    要在基于 Windows/IIS 的 Azure Web 应用程序中删除服务器标头或供电标头,您需要添加具有以下内容的 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>();
                });
    

    【讨论】:

      【解决方案2】:

      无法删除 Azure Web App 上的 Server 标头。

      作为一种解决方法,我们可以将我们的 Web 应用程序托管在 VM 中的 IIS 上,而不是 Azure Web App。

      为此,我们可以使用微软官方的UrlScan工具,经过搜索、下载和安装。 "C:\ Windows\ System32\ inetsrvurlscan"中有一个UrlScan.ini文件,需要用管理员权限打开。我的方法是进入管理员的cmd,进入目录,运行命令Notepad UrlScan.ini,然后我们就可以用记事本编辑了。里面有一个Remove Server Header,设置为1,重启IIS即可生效。然后访问网站,按F12发现Server不见了。

      我们可以通过UrlScan 3.1获得UrlScan

      关于另一个敏感头X-AspNet-Version,如果您使用的是ASP.NET FX MVC,我们可以通过代码将其删除:

       protected void Application_Start()
       {
           //remove version info of ASP.NET(remove 'X-AspNet-Version' header)
           MvcHandler.DisableMvcResponseHeader = true;
           AreaRegistration.RegisterAllAreas();
           FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
           RouteConfig.RegisterRoutes(RouteTable.Routes);
           BundleConfig.RegisterBundles(BundleTable.Bundles);
       }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-20
        • 2020-08-02
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        • 2021-06-29
        • 2019-08-31
        • 2020-09-08
        相关资源
        最近更新 更多