移除 Response Header中标识ASP.NET的信息

正常情况下,请求服务端api时,服务端会在Response Header中返回服务器的一些信息,比如服务器版本,所用的技术信息等等。 有时候我们并不想让请求端看到这些信息。

使用.NET框架时,我们关注的Response Header主要是四个:X-AspNet-Version,Server,X-Powered-By,X-AspNetMvc-Version。

1. X-AspNet-Version

X-AspNet-Version标识的是IIS中运行的.Net Framework CRL的版本信息。

移除方式:在web.config中添加如下节点。

<system.web>
	<httpRuntime enableVersionHeader="false"></httpRuntime>
</system.web>

2. X-Powered-By

其他服务端语言都会返回X-Powered-By这个信息。

移除方式:在web.config中添加如下节点。

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

3. Server

Server标识的是web服务器处理程序信息和程序的版本信息,比如 “Microsoft-IIS/7.5”, “nginx/1.0.11”, “Apache”等等。

移除方式:在Global文件中,重写HttpApplication Init方法。

public override void Init()
{
	base.Init();
	base.PreSendRequestContent += (s, e) =>
	{
		HttpContext.Current.Response.Headers.Remove("Server");
		HttpContext.Current.Response.Headers.Set("Server","MyServer");//可以自定义Server信息
		HttpContext.Current.Response.Headers.Remove("X-AspNet-Version"); //X-AspNet-Version 这样可以移除
		HttpContext.Current.Response.Headers.Remove("X-AspNetMvc-Version"); //X-ApsNetMvc-Version 这样移除
	};
}

如果觉得我的文章对您有用,请随意打赏。

您的支持将是我最大的动力!

Latest Post

  • 2018-03-25 ? 小程序填坑记之UnionID
  • 2018-03-24 ? 小程序填坑记之支付
  • 2018-03-23 ? 小程序填坑记之服务通知

原文:大专栏  移除 Response Header中标识ASP.NET的信息

原文地址:https://www.cnblogs.com/dajunjun/p/11641785.html

时间: 2024-08-24 14:42:40

移除 Response Header中标识ASP.NET的信息的相关文章

Wildfly8 更改response header中的Server参数

项目经过局方安全检查需要屏蔽掉服务器中间件信息,查了一下午,网上看到的都是修改jboss7的,我们使用的wildfly8(jboss改名为wildfly),修改地方不一样,折磨了半天. jboss服务器缺省情况下会在HTTP response header中显示自身的标识,如下:    这样会暴露服务器信息,别人可能就会根据这个信息查找服务器漏洞对服务器进行攻击. 屏蔽方法: 修改domain.xml文件,在wildfly8中,该文件位于   wildfly安装目录下/domain/config

js在返回response header中取值

最近后台给我返回一个字段,放在response header中,让我获取后判断进行下一步操作: 不过在网上查询了n多方法后,还是只能得到conten-type:但是在控制台中response header明明就看到了传递过来的其他字段,就是取不出来,虽然后面又更改了其他方法解决了问题,但是本着遇到问题尽量解决的原则,在午休的时候,通过网上各种查找,终于发现了问题所在:后台的哥们,真的不是我的错,是你们设置的不够啊!!!!!! 后台需要在服务器上设置'Access-Control-Expose-H

从response.header中提取cookie

//        List<String> resp = new ArrayList<String>();  //        HeaderIterator headers = response.headerIterator("Set-Cookie");//      while(headers.hasNext()){//        resp.add(headers.next().toString().replace("Set-Cookie:

ASP.NET 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/h

在HTTP响应标题中隐藏ASP.NET MVC的版本

在默认情况下,ASP.NET MVC网站会在HTTP响应标题(Response Header)中动态添加目前使用的ASP.NET MVC版本编号.如果使用Fiddler Web Debugger工具查看连接到ASP.NET MVC网站的HTTP封装包,即可在Response Header中看到一个“X-AspNetMvc-Version”的HTTP标题,会暴漏目前使用的ASP.NET MVC的版本. 基于安全考虑,当希望隐藏ASP.NET MVC送出的版本编号时,在Global.asax文件的A

Angular2中对ASP.NET MVC跨域访问

应用场景 项目开发决定使用angular2进行前后端分离开发,由我负责后端服务的开发,起初选择的是web api进行开发.对跨域访问通过API中间件+过滤器对跨域访问进行支持.开发一段后,通知需要移植到MVC4项目中一同发布angular2并且放弃API,但前期开发仍然需要分离开发. 遇到的问题 想继续使用中间件和过滤器的方式对MVC中的Action进行操作和限制,但经过尝试后发现行不通.主要问题有几下几点. API的处理管道和MVC的处理管道是两个完全不同的东西,所以原来用于API中的编码和方

隐藏ASP.NET MVC的版本信息,使其不在HTTP Header中显示

隐藏ASP.NET MVC的版本信息,使其不在HTTP Header中显示. 一.隐藏:X-AspNetMvc-Version 在Global.asax文件的Application_Start方法中添加: MvcHandler.DisableMvcResponseHeader = true; 二.移除 Header 中的 Server 在Global.asax文件中添加: protected void Application_PreSendRequestHeaders(object sender

如何移除网站Response Headers中的X-Powered-By信息?

X-Powered-By是网站响应头信息其中的一个,出于安全的考虑,一般会修改或删除掉这个信息. 如果你用的node.js express框架,那么X-Powered-By就会显示Express.如果用的thinkjs,那么X-Powered-By就会显示thinkjs.1... 最近,在折腾node.js程序的时候,我就想把这个信息删除.具体删除方法如下: 在Express中删除X-Powered-By var app = express(); app.disable('x-powered-b

ASP.NET Web API中把分页信息放Header中返回给前端

谈到ASP.NET Web API的分页,考虑的因素包括: 1.上一页和下一页的uri2.总数和总页数3.当前页和页容量 接着是服务端的数据以怎样的形式返回? 我们通常这样写: {    totalCount:10,    result: [        {id:1, name:"a"},        {id:2, name:"b"}    ]} 以上,把分页相关和实体信息以json格式返回给前端.但在本篇,尝试另外一种方式:把分页信息放在Header中返回给前