使用IIS作为web服务器时,输出页面的response headers中总是会自动带上X-Powered-By、X-AspNet-Version和Server这几个项。
暴露了网站程序所使用的版本,有安全隐患。
一、去掉headers中的X-Powered-By
在IIS里查看网站的“属性”,选择“HTTP头”选项卡就能看到在“自定义HTTP头”中有“X-Powered-By”选项,直接把它删除掉就OK了。
二、去掉Headers中的X-AspNet-Version
X-AspNet-Version的去掉方法:
只要在web.config文件里的<system.web>节里增加 <httpRuntime enableVersionHeader="false" /> 即可。
MSDN是这么解释这个选项的含义的:
enableVersionHeader:可选的 Boolean 属性。
指定 ASP.NET 是否应输出版本标头。Microsoft Visual Studio 2005 使用该属性来确定当前使用的 ASP.NET 版本。对于生产环境,该属性不是必需的,可以禁用。
说明:该属性在 .NET Framework 1.0 中不可用。
默认值为 True 。
三、去掉Headers中的Server
从http://www.microsoft.com/technet/security/tools/urlscan.mspx 下载urlscan,安装,找到../inetsrv/urlscan/urlscan.ini 文件中的 RemoveServerHeader 属性,将其设为1即可。
这个软件的最新版本是2.5,下载以后,发现还没有提供对IIS7的支持。
注:本文只针对IIS6实现,IIS7及以后版本可以使用URLRewrite组件配合Web.config文件中来设置实现。