HTTP 301 重定向到 HTTPS 是否不安全?

信息安全 tls http 网址重定向 ssls带
2021-08-18 07:52:07

对于网站,我强制 301 重定向从http://login.example.com使用https://login.example.com文件.htaccess

正如我在这个问题中所读到的,这仍然构成了安全威胁。我想知道这仍然构成威胁。谁能用一般的方式解释这一点?

2个回答

由于您正在通过 HTTP 进行 301 重定向,因此有人可以在该连接的中间人并将您重定向到他们想要的任何地方 - 特别是他们实际上根本无法重定向您,而是在您的计算机和https://login.example.com监控您的计算机之间进行连接并以名称为您提供其内容http://login.example.com

缓解这种情况的一种方法是使用 HSTS HTTP 标头 - 当用户第一次加载您的页面时,它会告诉他们的浏览器您的网站仅在未来某个日期之前通过 HTTPS 加载(该指令通常设置了到期日期在遥远的未来)。这意味着一旦用户通过 HTTPS 连接到您的站点一次,他们将始终这样做,直到 HSTS 指令到期。

这留下了最后一种情况 - 假设攻击者 MITM 在用户浏览器看到来自您服务器的 HSTS 标头之前连接。在这种情况下,用户的浏览器永远不会知道它不应该使用非 HTTPS 连接。缓解这种情况的一种方法是将您的网站包含在 HSTS 预加载列表中,这意味着 Web 浏览器发布时已经知道您的网站仅支持 HTTPS。Chrome、Firefox、Safari、IE11 和 Edge 都有一个 HSTS 预加载列表,其中包括 Chrome HSTS 预加载列表,您也可以通过几个步骤提交您的网站 -有关 Chrome HSTS 预加载列表的更多信息

如果您将您的网站放在 HSTS 预加载列表中并完成所需内容,那么您可以合理保证任何使用这些浏览器的新版本的人都不会受到临时攻击者的 HTTPS-to-HTTP MITM 降级攻击。

请记住,一旦您的网站在 HSTS 预加载列表中,从每个人的浏览器中恢复它并不是很快,因为任何尚未升级(再次)的浏览器都希望您的网站仅通过 HTTPS 加载.

从这个问题来看,301 重定向本身可能会构成威胁,但事实并非如此。

它不会构成安全威胁。它只承担提供普通HTTP页面的相同风险。