我今天分析了应用程序的响应头。我想知道为什么或为了什么目的,以下定义是有用的:
服务器:Microsoft-IIS / 10.0
x-aspnet-version:4.0.30319
x-aspnetmvc-version:5.2
x-powered-by:ASP.NET
我想有一个特殊的原因,为什么默认发送?我知道你可以关掉它。
答案 0 :(得分:2)
我的猜测是由框架开发人员完成的,主要是为了“广告”目的。请参阅例如Kestrel框架的this问题(通常由asp.net核心使用)。在该问题中添加“服务器”标题的原因是:
这是TechEmpower基准测试所要求的。
开发人员希望他们的框架在流行的Web框架基准测试网站中列出,以便他们添加Server头。还有一些网站根据这些标题来衡量网页框架的流行程度。如果没有“X-Powered-By”标题,那些网站将不会知道您正在使用ASP.NET,因此看起来世界上没有人会使用ASP.NET,这可能会影响其受欢迎程度(您看到没有人使用它) - 所以你不打算自己开始使用它)。如果nginx没有添加服务器头 - 它将不会是世界上最受欢迎的Web服务器(或者更确切地说 - 你不会知道它是否是)。使用版本标题,可以收集有关用户切换到某些流行框架版本的速度的统计信息。
如您所见 - 这些标题主要用于框架开发人员和全局统计信息,并且因为它们也会引入轻微的信息泄漏 - 您应该从应用程序中删除它们,因为应用程序的安全性应该具有更大的价值(对您而言)而不是框架开发者的广告目标。