响应中存在这些 HTTP 标头是否存在安全风险?

信息安全 Web应用程序 应用安全 http
2021-08-20 13:55:35

在某些站点的响应中可以看到以下 HTTP 标头:

  • 年龄:12
  • 内容-MD5:Q2hlY2sgSW50ZWdyaXR5IQ==
  • 通过:1.1 tacoma:3128 (squid/2.7.STABLE9)
  • X-Cache:来自塔科马的小姐
  • X-Cache-Lookup:来自 tacoma:3128 的 MISS
  • X 内容摘要:a513fd4a793de617e370699fe9a71c08be3b9476
  • X-Forwarded-Proto:https
  • X-Rack-Cache:未命中
  • X 运行时:0.002216
  • X-Ua 兼容:IE=Edge,chrome=1

乍一看,这些 HTTP 标头不会泄漏任何敏感信息或引入安全漏洞,并使攻击者的生活更轻松。

但是 HTTP 响应中存在这些标头会以任何方式损害安全性吗?

4个回答

它们不会直接影响安全性。

但是,它会泄露对攻击者可能有价值的信息。

例如,攻击者可以使用这些标头中包含的信息来:

  • 确定系统上运行的 squid 的确切版本
  • 确定应用程序后端(X-Rack-Cache:表示 Ruby,因此很可能是 Rails 或 Sinatra)
  • 确定内部主机名(tacoma 可能是指前端 squid 主机)和端口
  • 提供有关页面缓存策略的提示(通过发出多个请求并检查 HTTP Age 标头或其他一些 X-标头,您可以判断请求是否导致缓存命中或未命中)。

所以,是的 - 隐藏这些标题只会掩盖背后的事情,而不是保护它们。但是你不必让入侵者的工作对他们来说很容易:)

概念本身不会损害安全性,但内容可能会。

如果您决定使用以下 HTTP 标头保护您的网站:

  • X-UserIsAdmin:真

那么它会损害安全性。

将 HTTP 标头用于其意图,以及与正确处理 HTTP 请求相关的信息,其本身不应损害安全性。只需将相同的方法应用于任何其他客户端/服务器通信即可。

HTTP 标头与响应的其余部分一样是内容。任何内容、标题或其他内容是否是安全问题取决于内容。

X-Runtimeheader 将暴露您网站的哪个部分是 DOS 攻击的良好目标。