3

这似乎是一个愚蠢的问题,但我想知道:

  • 不强制将用户重定向到 HTTPS的情况下如何部署 HSTS ?
  • HTTP 内容如何仍然从与使用 HSTS 的域相同的域中提供?(整个网站或混合内容)
  • 为什么会有人这样做?

我正在阅读EFF 网站,看来已经完成了:

我们最近为 eff.org 启用了 HSTS。设置时间不到一个小时,我们找到了一种无需强制将用户重定向到 HTTPS 的方法,因此我们可以明确表示对 HTTPS 访问的偏好,同时仍然使网站在 HTTP 中可用。它就像一个魅力,现在我们的很大一部分用户正在自动使用 HTTPS 访问我们的网站,甚至可能不知道它。

据我所知,HSTS 通过发送 HTTP 标头来工作:

Strict-Transport-Security: max-age=31536000

因此,如果我访问https://example.net/上发送该标头的页面,则在接下来的 31536000 秒内,所有未来对域 example.net 的请求都将使用 HTTPS,如果(响应?)是 HTTP,那么浏览器将显示巨大的红色警告。

有人可以为我澄清一下吗?我对 HSTS 的理解是准确的还是我遗漏了什么?

4

1 回答 1

4

HSTS 标头只能通过 HTTPS 发布,并且只有在通过 HTTPS 接收时才由用户代理强制执行。用户代理应忽略通过 HTTP 发送的 HSTS 标头,因为攻击者可能已恶意注入它。

这意味着该站点可以继续通过 HTTP 提供服务,并且用户可以根据自己的选择继续通过 HTTP 浏览。但是,如果他们手动将 https:// 插入地址栏中,他们将收到 HSTS 标头,然后用户代理会将其视为 HSTS 主机。

这是一种逐步引入强制 HTTPS 流量的好方法,而无需在第一天就将其全部强制执行。随着用户意识到安全选项,HTTPS 流量将增加并保持多亏了 HSTS。也许 EFF 正在逐步引入它,一旦他们满意他们可以容纳它,他们可能会在某一天轻弹大的“HTTPS 开关”。

于 2014-01-31T09:42:59.020 回答