如下图所示,如果不经过处理,相应头会出现如下敏感信息,影响服务安全。
那么如何将这些信息隐藏呢?
第一种方案:
添加以下代码到文件global.asax.cs
protected void Application_PreSendRequestHeaders() { Response.Headers.Remove("Server"); Response.Headers.Remove("X-AspNet-Version"); Response.Headers.Remove("X-AspNetMvc-Version"); }
第二种方案:
可以通过过滤器进行拦截处理。方式与第一种方案基本无一。
第三种方案:
1.借助UrlScan 移除Header中的Server,附带urlscan文件
- 安装工具UrlScan,默认一直点就可以了
- 修改URLCan.ini(位置:%WINDIR%\System32\Inetsrv\URLscan)中的配置"RemoveServerHeader=1",看字面意思就知道是一出Server头信息咯。
- 重启iis服务。
2.移除 X-AspNet-Version
在web.config中的<httpRuntime>中添加enableVersionHeader="false"
3.移除X-AspNetMvc-Version,
global.asax.cs中的方法 Application_Start()添加如下代码:
protected void Application_Start() { MvcHandler.DisableMvcResponseHeader = true; }
4.移除X-Powered-By
这个在IIS服务器上配置即可:
如下图所示:
点击删除即可,简单吧。
最后,还是建议使用第一种或第二种方案。毕竟UrlScan除了移除Server以外,还会拦截一些有注入风险的请求,要是你的项目中有些请求不是很安全,有可能会被拦截处理哦。
当然,站点的安全性,还得通过请求加密,加签以及添加SSL证书等进行保障。