如何在Azure应用服务的响应标头中隐藏服务器参数?

时间:2018-09-20 08:46:50

标签: azure httpresponse azure-web-app-service

我们已经在Azure上部署了服务。

出于安全性考虑,在web.config中,我们设置了以下参数:

 <security>
      <requestFiltering removeServerHeader ="true"></requestFiltering>
    </security>

我正在Postman工具上对此进行测试,当请求发送成功(200请求成功)时, 服务器 被隐藏。

问题:

如果我更改主机名(例如xyz(任何内容为假)),则现在针对相同的请求 然后在响应标题中显示为

Issue

我认为它来自IIS(Azure)。

希望任何人都能帮助我

谢谢

1 个答案:

答案 0 :(得分:0)

Azure App Services(根据您的截图使用的是您使用的)使用多租户环境来托管应用程序。 SSL卸载发生在称为前端服务器(在IIS10上运行并使用ARR模块)的VM中,然后才达到实际承载正在运行的应用程序的工作线程。

前端服务器与您的一个工作服务器之间的路由/负载平衡是根据传入请求中的“主机” HTTP标头执行的。如果没有标题,前端服务器将不知道将哪些工作进程分配给您的站点,因此无法路由请求。

这就是为什么您收到“ 404 Site Not Found”响应的原因-FE发送它。 这就是为什么您看到标头,但从未访问过web.config的原因。

TLDR:

没有正确的Host标头,您的应用程序将永远无法到达,多租户之谜的另一部分将以404 Site Not Found作为路由中断响应。