为什么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