首页 > Web开发 > 详细

ASP.NET MVC中移除冗余Response Header

时间:2016-09-30 12:27:28      阅读:224      评论:0      收藏:0      [点我收藏+]

本文主要介绍如何优化ASP.NET MVC使用IIS时Response Header中的不必要的信息


默认的,创建一个ASP.NET MVC项目,会在Response Header中包含一些敏感的信息,这些信息是没有什么用处的但是会暴露出IIS的配置信息等。

下面是默认的Response Header信息:

Cache-Control:private, s-maxage=0
Content-Encoding:gzip
Content-Length:8024
Content-Type:text/html; charset=utf-8
Date:Fri, 30 Sep 2016 03:17:10 GMT
Server:Microsoft-IIS/10.0
Vary:Accept-Encoding
X-AspNet-Version:4.0.30319
X-AspNetMvc-Version:5.2
X-Frame-Options:SAMEORIGIN
X-Powered-By:ASP.NET
X-SourceFiles:=?UTF-8?B?RDpcV29ya1wyMDE2XE56TmQuSWRlbnRpdHlcR0xELldlYlxTdXBlclxVc2Vycw==?=

 

 

以上内容中,红色部分并不是必须输出的信息,相反会暴露服务器的一些配置信息等,以下逐一介绍如何移除不需要的输出信息:

 

  • X-AspNetMvc-Version

打开Global.asax.cs ,Application_Start方法中,添加如下代码:

MvcHandler.DisableMvcResponseHeader = true;

 

  • Server

同样在Global.asax.cs 中,添加如下代码

protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
    HttpApplication app = sender as HttpApplication;
    if (app != null &&
        app.Context != null)
    {
        app.Context.Response.Headers.Remove("Server");
    }
}

 

  • X-AspNet-Version

在Web.config文件中找到system.web节点,添加如下配置:

<httpRuntime enableVersionHeader="false" />

 

  • X-Powered-By

在Web.Config文件中找到system.webservice,添加如下配置:

<httpProtocol>
  <customHeaders>
    <remove name="X-Powered-By" />
  </customHeaders>
</httpProtocol>

 

OK,做完上面的操作,编译后打开,F12中可以看到,Response Header内容如下

Cache-Control:private, s-maxage=0
Content-Encoding:gzip
Content-Length:8018
Content-Type:text/html; charset=utf-8
Date:Fri, 30 Sep 2016 02:35:39 GMT
Vary:Accept-Encoding
X-Frame-Options:SAMEORIGIN
X-SourceFiles:=?UTF-8?B?RDpcV29ya1wyMDE2XE56TmQuSWRlbnRpdHlcR0xELldlYlxTdXBlclxVc2Vycw==?=

 

不必要的信息已经被去掉了。清爽很多!

ASP.NET MVC中移除冗余Response Header

原文:http://www.cnblogs.com/buyixiaohan/p/5923226.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!