代码之家  ›  专栏  ›  技术社区  ›  Kiryl

服务结构-删除ReverseProxy服务器头“Microsoft HTTPAPI/2.0”

  •  0
  • Kiryl  · 技术社区  · 7 年前

    我在asp.net core 2.1/kestrel上运行了一个无状态服务。该服务是安全的,并通过LB和SF反向代理从外部访问。服务结构版本为6.3.187.9494。

    ReverseProxy添加了自己的服务头,即Microsoft HTTPAPI/2.0 .

    所以这里是我检查的方式-我从服务运行的节点向服务的端点发出请求,但没有得到服务器头。然后我做了同样的事情,但是通过反向代理,我得到了服务器:微软HTTPAPI/2.0。

    通读 ApplicationGateway/Http 设置,我发现属性名为 移除服务响应头 -

    将显示的以分号/逗号分隔的响应头列表 从服务响应中删除;在转发给客户之前。 如果设置为空字符串;传递 按原样服务。i、 e不要覆盖日期和服务器

    有什么建议吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Community Mohan Dere    6 年前

    在windows上,服务结构HttpGateway运行在 负责这个头的内核模块,SF对此没有发言权。

    在我继续之前,

    更进一步说,

    要解决您的问题,您有两种选择:

    1. settings 把它从机器上取下来。

    您需要添加 DisableServerHeader HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters 并将其值设置为 2 .

    enter image description here

    此键控制http.sys在附加 http响应头“服务器”,用于它发送给客户端的响应。 值为0,这是默认值 ,将使用标题值 应用程序提供给http.sys,或将附加默认值 不为http.sys生成的响应附加“服务器”头 (以400、503和其他状态代码结尾的响应)。值为2 将阻止http.sys将服务器头附加到 回应。如果响应中存在“服务器”标头,则不会出现 如果不存在,则不会添加。

    请详细了解这个答案: GET request to IIS returns Microsoft-HttpApi/2.0

    .

    1. 基于上述描述,响应标头包含“Microsoft HTTPAPI/2.0”,因为默认值为0,并且原始响应不包含服务器标头,如果您提供任何值,则将改用它。另外,将SF配置为不从响应中删除服务器头,并将RemoveServiceResponseHeaders配置设置为类似“Date”的值,因为默认值为“Date;“服务器”
    推荐文章