分享

[zt]-如何去掉IIS中Response Headers的X-Powered-By、X-AspNet-Version和Server项

 allcome 2012-05-11
如何去掉IIS中Response Headers的X-Powered-By、X-AspNet-Version和Server项
2009-11-18 11:28
使用IIS作为web服务器时,输出的aspx页面的response headers中总是会自动带上X-Powered-By、X-AspNet-Version和Server这几个项。而使用其他web服务器时,往往能 获得更加简洁的response headers。对于高负载的网站来说,能节省几个response header项,应该也能节省客观的流量。而从程序员的角度来说,要这些header项出来,一则暴露了网站程序所使用的版本,二来也破坏了简单之上的原 则。因此,一直都在寻找去掉他们的办法。

9588.com是一个典型的以IIS为服务器的网站,通过Firebug可查看其首页的Response Headers:
再来看看鲜果热文的Response Headers,使用的服务器为ngix,相对来说,要简洁得多了:
那么,是不是IIS中这些header项不能去掉呢?当然不是,看看ctrip.com的首页的Response Headers就可以知道:
暂且不去管这其中技术人员的差异,只管来考虑如何去掉这几个项好了。

一、去掉headers中的X-Powered-By

这个是最简单的,因为在IIS里查看网站的“属性”,选择“HTTP头”选项卡就能看到在“自定义HTTP头”中有“X-Powered-By”选项,直接把它删除掉就OK了。

二、去掉Headers中的X-AspNet-Version


X-AspNet-Version的去掉似乎从IIS的选项里边找不到,因此也就变得复杂些。不过网上还是会有对策。在一篇Remove the X-AspNet-Version header 的文章就明确给出了问题的答案:
只要在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
这个项的去掉就可有可无了,而且作为一种对web服务器自身的标识,肯定不愿意让用户能轻而易举地去掉。不过,在
How to remove Server Header on IIS5.0/6.0 这篇文章中,我们还是能找到解决问题的办法:

http://www.microsoft.com/technet/security/tools/urlscan.mspx下载urlscan,安装,找到..\inetsrv\urlscan\urlscan.ini 文件中的RemoveServerHeader属性,将其设为1即可。

这个软件的最新版本是2.5,下载以后,发现还没有提供对IIS7的支持

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多