相关疑难解决方法(0)

在没有UrlScan的情况下删除/隐藏/禁用Azure/IIS7中过多的HTTP响应标头

我需要删除过多的标题(主要是为了通过渗透测试).我花时间查看涉及运行UrlScan的解决方案,但这些都很麻烦,因为每次启动Azure实例时都需要安装UrlScan.

必须有一个很好的Azure解决方案,不涉及从startup.cmd部署安装程序.

我知道响应标头添加在不同的地方:

  • 服务器:由IIS添加.
  • X-AspNet-Version:在Flush in HttpResponse类中由System.Web.dll添加
  • X-AspNetMvc-Version:由System.Web.dll中的MvcHandler添加.
  • X-Powered-By:由IIS添加

是否有任何方法配置(通过web.config等?)IIS7删除/隐藏/禁用HTTP响应标头,以避免asafaweb.com上的"过多标题"警告,而无需创建IIS模块或部署需要的安装程序每次Azure实例启动时运行?

asp.net iis-7 azure penetration-testing response-headers

82
推荐指数
4
解决办法
4万
查看次数

删除自托管 WebApi 响应中的服务器标头

我们正在使用自托管的 WebApi,我们需要删除所发送响应的服务器标头(服务器:Microsoft-HTTPAPI/2.0)。

由于它是自托管的,因此 HttpModule 不是一种选择。实现 a DelegatingHandler,访问标头以及添加是可能的。在asp.net网站很好的细节,如何能够做到这一点。

但是服务器标头似乎是在管道中稍后添加的,因为它没有在HttpResponseMessage我们从DelegatingHandler. 但是,我们可以添加值。

async protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
    HttpResponseMessage response = await base.SendAsync(request, cancellationToken);
    response.Headers.Server.Add(new ProductInfoHeaderValue("TestProduct", "1.0"));
    response.Headers.Add("Server", "TestServerHeader");

    return response;
}
Run Code Online (Sandbox Code Playgroud)

双方Server.Add.Add正常工作。response.Headers.Remove("Server");但是不起作用,因为服务器标头未设置,response.Headers.Server为空。

有什么我想念的吗?

.net c# self-hosting http-headers asp.net-web-api

5
推荐指数
1
解决办法
2519
查看次数