您的位置首页百科问答

asp.net mvc隐藏IIS和mvc版本信息

asp.net mvc隐藏IIS和mvc版本信息

的有关信息介绍如下:

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比对如下: