• 删除 Windows Server IIS 10 和 ASP.NET 中的 HTTP 响应标头


    Windows Server IIS喜欢告诉全世界网站在 IIS 上运行。它使用 HTTP 响应中的Server标头执行此操作,如下所示。在这篇文章中,我将向您展示如何在 IIS 中删除响应服务器标头。你不想给黑客太多关于你的服务器的信息,嗯?;-)。

    正常的 HTTP 响应标头

    微软互联网信息服务

    尽管我不是默默无闻的安全爱好者(你是吗?),但安全专家通常建议删除常见的服务器响应标头。攻击者可能会通过查看 Web 服务器返回的响应标头来获得有关您的服务器和网络的大量信息。

    因此,建议您至少删除其中一些标头。

    但是让我们从正常的 HTTP HEAD 响应的样子开始:

    1. HTTP/1.1 200 OK
    2. Content-Length: 0
    3. Content-Type: text/html; charset=UTF-8
    4. Vary: Accept-Encoding
    5. Server: Microsoft-IIS/8.0
    6. X-UA-Compatible: IE=Edge,chrome=1
    7. Date: Sun, 06 Jul 2014 10:05:34 GMT
    8. Connection: close

    在这里,您注意到IIS在标头中显示其版本信息Server,作为响应:

    Server: Microsoft-IIS/8.0
    

    删除 IIS 中的 ETag 标头一样,您可以使用 URL Rewrite Module outboundRule重写和清空IISServer:中的HTTP 响应标头。

    希望在 IIS (或更多 HTTP 安全标头)上启用 HTTP Strict-Transport-Security (HSTS )?

    使用 outboundRule URL 重写规则删除服务器响应标头

    不幸的是,您不能真正删除 Server 标头。但是您可以重写其内容并将其清空。在IIS 7+(IIS 7、8.5、8.0、8.5、IIS 10.0)上,使用重写 outboundRuleServer: 标头响应中删除 Web 服务器版本信息。

    您可以使用以下URL 重写出站规则:

    outboundRule 所做的是:它Server:在输出响应流中查找标头(或 serverVariable),并用空字符串(无)重写该值。

    最终结果是一个空的Server: 响应标题行:

    1. HTTP/1.1 200 OK
    2. Content-Length: 0
    3. Content-Type: text/html; charset=UTF-8
    4. Vary: Accept-Encoding
    5. Server:
    6. X-UA-Compatible: IE=Edge,chrome=1
    7. Date: Sun, 06 Jul 2014 10:06:08 GMT
    8. Connection: close

    您现在已经成功地Server从 HTTP 标头中删除了版本响应!

    这是特定于网站的规则。如果要为所有应用程序创建规则,则必须在服务器级别创建规则。此外,某些应用程序,尤其是第三方应用程序,可能需要并依赖于 Server 标头。然后,您可能需要为这些应用程序删除此规则。

    删除 IIS 中的 ETags HTTP 响应标头

    如何在 IIS 上启用 HTTP 严格传输安全 (HSTS)

    用您自己的服务器信息重写“服务器:Microsoft-IIS/8.0”——只是为了好玩

    重写响应头的有趣之处在于您可以显示自己的信息字符串。例如,如果您在 Rewrite 操作中提供一个值,则会显示该消息:

    1. value="Saotn Server Software systems, LTD." />
    1. HTTP/1.1 200 OK
    2. Content-Length: 0
    3. Content-Type: text/html; charset=UTF-8
    4. Vary: Accept-Encoding
    5. Server: Saotn Server Software systems, LTD.
    6. X-UA-Compatible: IE=Edge,chrome=1
    7. Date: Sun, 06 Jul 2014 11:19:16 GMT
    8. Connection: close

    这不是很有趣,现在是吗?:)

    将 .htaccess 转换为 web.config

    如何使用 PowerShell 从 Windows Server 中删除 IIS

    使用 web.config customHeaders 删除 IIS 中的 ASP.NET X-Powered-By 标头

    默认情况下, IIS通过放置X-Powered-By标头来告诉世界它由ASP.NET提供支持:

    1. HTTP/1.1 200 OK
    2. Content-Length: 0
    3. Content-Type: text/html; charset=UTF-8
    4. Vary: Accept-Encoding
    5. Server:
    6. X-Powered-By: ASP.NET
    7. X-UA-Compatible: IE=Edge,chrome=1
    8. Date: Sun, 06 Jul 2014 10:07:37 GMT
    9. Connection: close

    可以使用位于web.config节点中的 customHeaders 设置删除此响应标头

    现在,X-Powered-By标头已从响应标头输出中删除

    1. HTTP/1.1 200 OK
    2. Content-Length: 0
    3. Content-Type: text/html; charset=UTF-8
    4. Vary: Accept-Encoding
    5. Server:
    6. X-UA-Compatible: IE=Edge,chrome=1
    7. Date: Sun, 06 Jul 2014 10:10:02 GMT
    8. Connection: close

    了解有关各种HTTP 安全标头的更多信息。

    X-AspNet-Version 标头

    X-AspNet-VersionHTTP Header 向全世界广播正在使用的ASP.NET版本。在应用程序的 web.config 文件中的节点内添加以下内容:

    1. enableVersionHeader="false" />

    IIS 10.0 中的 removeServerHeader requestFiltering

    在 IIS 10.0 (Windows Server 2016/2019) 中,您可以通过在system.webServer节点中配置requestFiltering来移除Server标头:web.config

    或者在 IIS 管理器的配置编辑器中:

    IIS 配置管理器 requestFiltering 节点中将 removeServerHeader 设置为 True。

    这样您就不必摆弄复杂的出站重写规则。要删除 ASP.NET 的X-Powered-By标头,您仍然需要customHeaders上面提到的部分。

  • 相关阅读:
    webpack的安装
    内存管理的相关概念
    vue实现搜索文字高亮功能
    新零售mysql设计(采购表 入库信息表 入库商品表)
    软件项目管理–进度计划
    图解python | Anaconda安装与环境设置
    欧科云链:成本与规模之辨——合规科技如何赋能香港Web3生态?
    linux taskset命令
    JUC-无锁
    一加Nord N300 5G什么时候发布 一加Nord N300 5G配置如何
  • 原文地址:https://blog.csdn.net/allway2/article/details/126432258