为什么removeServerHeader在Azure Web App中工作?

正如在其他SO问题中提到的,Windows Azure Web应用程序在IIS / 8.0上运行,但是我怀疑这是否真的如此。

首先,当我检查运行在Azure Web Apps免费层上的Web应用程序的HTTP响应时,我可以看到以下HTTP标头:

Server:Microsoft-IIS/8.0

但是,根据本文档以及我的机器上的一些本地测试,我知道IIS 8.0中不支持requestFiltering removeServerHeader

例如:

<configuration>
  <system.webServer>
    <security>
      <requestFiltering removeServerHeader="true" />
    </security>
  </system.webServer>
</configuration>

它是IIS 10.0中添加的一项功能,我可以通过在IIS 10上的Windows 10 VM上运行更多测试来确认此功能。

有趣的是, 这个设置也适用于我的Azure Web应用程序 ,该应用程序据说可以在IIS 8.0上运行,所以我的问题是实际运行Azure Web Apps的IIS版本是什么?

编辑:从下面的所有评论看来,Azure Web应用程序运行在IIS 8.0上,所以我重新将我的问题说成是:在IIS 8.0上运行时,removeServerHeader如何在Azure Web App中工作?


各种资源显示,Azure网站运行IIS的任何Windows版本都不具备的定制版本。


您的网络作业与关联的网站在相同的环境中运行。 要获取有关该网站及其环境的详细信息,请使用Kudu。 您可以通过浏览到URL访问它:

{} yoursite .scm.azurewebsites.net

然后选择顶部的环境标签。

在这里输入图像描述


微软2013年的博客文章指出:

我们的客户要求我们允许在Azure网站上禁用这些标头,因此在最近发布的Windows Azure网站中,我们已经启用了这些功能。

然后它举出一个使用removeServerHeader的例子,并说它是请求过滤模块的一部分:

使用请求过滤模块可以方便地删除这些标题...

有趣的是,他们的IIS 10请求过滤文档确认removeServerHeader属性已添加到IIS 10中,正如您已经发现的那样。

IIS 10.0新增功能

IIS 10.0添加了removeServerHeader属性以禁止将HTTP服务器标removeServerHeader送到远程客户端。

所以我想说,它在Azure网站上的原因是因为Microsoft在2013年根据客户的要求将此功能推广到了Azure网站 - 可能是作为Azure特定版本的请求过滤模块的一部分。 他们已经将它作为标准集成到IIS 10请求过滤模块中。

链接地址: http://www.djcxy.com/p/88215.html

上一篇: Why does removeServerHeader work in an Azure Web App?

下一篇: how to select the video from gallery in phonegap?