本文主要介紹如何優化ASP.NET MVC使用IIS時Response Header中的沒必要要的信息css
默認的,建立一個ASP.NET MVC項目,會在Response Header中包含一些敏感的信息,這些信息是沒有什麼用處的可是會暴露出IIS的配置信息等。html
下面是默認的Response Header信息:web
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==?=
以上內容中,紅色部分並非必須輸出的信息,相反會暴露服務器的一些配置信息等,如下逐一介紹如何移除不須要的輸出信息:服務器
打開Global.asax.cs ,在Application_Start方法中,添加以下代碼:app
MvcHandler.DisableMvcResponseHeader = true;
一樣在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"); } }
在Web.config文件中找到system.web節點,添加以下配置:spa
<httpRuntime enableVersionHeader="false" />
- X-Powered-By
在Web.Config文件中找到system.webservice,添加以下配置:code
<httpProtocol> <customHeaders> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol>
OK,作完上面的操做,編譯後打開,F12中能夠看到,Response Header內容以下:htm
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==?=
沒必要要的信息已經被去掉了。清爽不少!ip