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

问题描述 投票:0回答:1

我们在Azure上部署了我们的服务。

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

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

我在Postman工具上测试这个,当请求发送成功(200请求OK)时,服务器被隐藏响应。

问题:

现在对于相同的请求,如果我更改主机名(比如xyz(任何东西:假))那么在响应头中它显示为

Issue

我认为它来自IIS(Azure)。

希望有人能帮助我,

谢谢

azure httpresponse azure-web-app-service
1个回答
0
投票

Azure App Services(您正在使用的,基于屏幕截图)使用多租户环境来托管应用程序。 SSL命令发生在称为前端服务器(在IIS10上运行并使用ARR模块)的VM中,然后命中实际托管正在运行的应用程序的Workers。

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

这就是为什么你得到“404 Site Not Found”响应 - FE发送它。这也是你看到标题的原因,你的web.config从未到过。

TLDR:

如果没有正确的主机标头,您的应用程序将永远不会到达,多租户拼图的另一部分将响应404 Site Not Found作为路由中断。

© www.soinside.com 2019 - 2024. All rights reserved.