• MVC中移除冗余Response Header


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

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

  • 相关阅读:
    HDFS命令操作和高可用
    nginx-nginx和反向代理概念
    day01 Hadoop 简单介绍及架构设计
    常用正则表达式
    【JavaWeb笔记】第二章 JDBC
    【JavaSE笔记】第二章 进制数据类型和运算符
    LeetCode-94 Binary Tree Inorder Traversal Solution (with Java)
    LeetCode-1019 Next Greater Node In Linked List Solution (with Java)
    LeetCode-946 Validate Stack Sequences Solution (with Java)
    LeetCode-739 Daily Temperatures Solution (with Java)
  • 原文地址:https://www.cnblogs.com/qtiger/p/10697302.html
Copyright © 2020-2023  润新知