asp.net mvc隐藏IIS和mvc版本信息
的有关信息介绍如下:asp.net mvc默认的response header会返回服务器的IIS版本、mvc版本等敏感信息,因此,处于安全考虑,应该避免返回此类信息:
1)X-AspNetMvc-Version
2)X-AspNet-Version
3)X-Powered-By
4)Server
创建空的asp.net mvc项目MVCRemoveHeader,并添加HomeController、Index页面
在VS中使用Chrome浏览器debug调试页面,在浏览器窗口按F12,进入开发者模式,依次点击【Netwrok】->【localhost】->【Headers】就可以看到如图所示的各种服务器信息
注意:如果打开F12模式后,network下面看不到localhost,则刷新页面即可看到了
隐藏MVC版本信息(节点:X-AspNetMvc-Version)
在Global.asax的Application_Start方法中添加如下代码,再次运行就没有 X-AspNetMvc-Version:
MvcHandler.DisableMvcResponseHeader = true;
隐藏asp.net 版本信息(节点:X-AspNet-Version)
在web.config文件的system.web节点下添加如下配置,再次运行就没有 X-AspNet-Version:
注意:默认是有httpRuntime节点的,因此只需要增加 enableVersionHeader="false"
隐藏X-Powered-By节点
在web.config文件中添加如下节点,如果已经存在,则修改对应节点,再次运行就没有 X-Powered-By:
隐藏IIS版本信息(节点:Server)
在Global.asax中添加如下代码,指定移除Server节点,再次运行就没有 Server:
///
/// 隐藏 Response Header 中的Server节点(IIS版本信息)
///
///
///
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
HttpApplication application = sender as HttpApplication;
if (application != null && application.Context != null)
{
application.Context.Response.Headers.Remove("Server");
}
}
做完上述几个节点隐藏前后的Response Header比对如下: