添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
安静的海豚  ·  Excel 365 - Header, ...·  1 月前    · 
谦虚好学的黑框眼镜  ·  Send HTTP Request·  2 周前    · 
唠叨的碗  ·  【 云原生 kubernetes 】- ...·  2 周前    · 
眼睛小的野马  ·  Common application ...·  2 周前    · 
霸气的书签  ·  [PDF] Can Large ...·  3 月前    · 
小眼睛的黑框眼镜  ·  jsp页面 ...·  3 月前    · 
老实的开心果  ·  Windows installer ...·  4 月前    · 
性感的煎鸡蛋  ·  Send emails in node.js·  8 月前    · 

本文主要介绍如何优化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;

    同样在 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" />
    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==?=

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