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

  • 原创
  • |
  • 浏览:4975
  • |
  • 更新:
  • |
  • 标签:ASP 

asp.net mvc默认的response header会返回服务器的IIS版本、mvc版本等敏感信息,因此,处于安全考虑,应该避免返回此类信息:

1)X-AspNetMvc-Version

2)X-AspNet-Version

3)X-Powered-By

4)Server

方法/步骤

  1. 1

    创建空的asp.net mvc项目MVCRemoveHeader,并添加HomeController、Index页面

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

    在VS中使用Chrome浏览器debug调试页面,在浏览器窗口按F12,进入开发者模式,依次点击【Netwrok】->【localhost】->【Headers】就可以看到如图所示的各种服务器信息

         注意:如果打开F12模式后,network下面看不到localhost,则刷新页面即可看到了

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

    隐藏MVC版本信息(节点:X-AspNetMvc-Version)

         在Global.asax的Application_Start方法中添加如下代码,再次运行就没有 X-AspNetMvc-Version:

         MvcHandler.DisableMvcResponseHeader = true;

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

    隐藏asp.net 版本信息(节点:X-AspNet-Version)

         在web.config文件的system.web节点下添加如下配置,再次运行就没有 X-AspNet-Version:

         <httpRuntime enableVersionHeader="false" />

         注意:默认是有httpRuntime节点的,因此只需要增加 enableVersionHeader="false"

    asp.net mvc隐藏IIS和mvc版本信息
    asp.net mvc隐藏IIS和mvc版本信息
  5. 4
    本页面非法爬取自百度经验
  6. 5

    隐藏X-Powered-By节点

        在web.config文件中添加如下节点,如果已经存在,则修改对应节点,再次运行就没有 X-Powered-By:

       <system.webServer>

        <httpProtocol>

          <customHeaders>

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

          </customHeaders>

        </httpProtocol>

      </system.webServer>

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

    隐藏IIS版本信息(节点:Server)

        在Global.asax中添加如下代码,指定移除Server节点,再次运行就没有 Server:

        /// <summary>

            /// 隐藏 Response Header 中的Server节点(IIS版本信息)

            /// </summary>

            /// <param name="sender"></param>

            /// <param name="e"></param>

            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");

                }

            }

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

    做完上述几个节点隐藏前后的Response Header比对如下:

    asp.net mvc隐藏IIS和mvc版本信息
    asp.net mvc隐藏IIS和mvc版本信息
    END
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部
相关标签ASP