man*_*tor 7 http nginx varnish http-headers
我正在使用 Varnish,我不太确定是否还应该删除Server: nginxHTTP 标头。为什么有人需要知道我正在使用 NGINX?可以从响应中删除这个 HTTP 标头还是在某个地方需要它?从安全的角度来看,这样做可能更好?
Mic*_*ton 14
RFC 7231 说明了 Server 标头:
源服务器可以在其响应中生成一个 Server 字段。
MAY 在RFC 2119 中被解释为:
- MAY 这个词,或形容词“OPTIONAL”,表示一个项目是真正可选的。一个供应商可能选择包含该项目,因为特定市场需要它或因为该供应商认为它增强了产品,而另一个供应商可能会省略相同的项目。不包含特定选项的实现必须准备好与包含该选项的另一个实现互操作,尽管功能可能会减少。同样,包含特定选项的实现必须准备好与不包含该选项的另一个实现互操作(当然,对于该选项提供的功能除外)。
因此,限制或删除服务器响应头是完全没问题的。当然,了解这样做可能会放弃什么是个好主意。为此,请返回 RFC 7231:
“Server”标头字段包含有关原始服务器用于处理请求的软件的信息,客户端通常使用这些信息来帮助识别报告的互操作性问题的范围,解决或定制请求以避免特定的服务器限制,以及用于有关服务器或操作系统使用的分析。源服务器可以在其响应中生成一个 Server 字段。
Run Code Online (Sandbox Code Playgroud)Server = product *( RWS ( product / comment ) )服务器字段值由一个或多个产品标识符组成,每个标识符后跟零个或多个注释([RFC7230] 的第 3.2 节),它们一起标识源服务器软件及其重要的子产品。按照惯例,产品标识符按照它们对识别源服务器软件的重要性的降序排列。每个产品标识符由名称和可选版本组成,如第 5.5.3 节中所定义。
例子:
Run Code Online (Sandbox Code Playgroud)Server: CERN/3.0 libwww/2.17源服务器不应该生成包含不必要的细粒度细节的服务器字段,并且应该限制第三方添加子产品。过长和详细的服务器字段值会增加响应延迟,并可能会泄露内部实现细节,这可能使攻击者(稍微)更容易找到和利用已知的安全漏洞。
尽管在实践中,攻击者并没有真正检查 Server: 标头。他们只是尝试他们知道的每一个安全漏洞,无论您的服务器是否有任何易受攻击的迹象。删除服务器:标头是一种隐匿性操作的安全性,并且几乎完全无效。但是,如果它让你感觉更好,或者你的老板或审计师告诉你这样做,那就去做吧。只是不要指望它会显着改善您的安全状况。
例如,nmap即使配置为根本不发送Server标头,或者标头内容完全是伪造的,也可以以相当高的准确度识别 Web 服务器。自己尝试一下nmap -sV -P0 -p 80,443 <IP address>。
| 归档时间: |
|
| 查看次数: |
1280 次 |
| 最近记录: |