简单来说:我应该重定向吗
http://example.org->https://www.example.org
http://example.org->https://example.org->https://www.example.org
http://example.org->http://www.example.org->https://www.example.org
这有关系吗?我正在使用 HSTS。
答案1
您应该尽可能使用最少数量的重定向。
但是使用 HSTS 时应执行以下操作:
http://example.org -> https://example.org-> https://www.example.org
需要注意的是,HSTS 策略仅适用于发送 Strict-Transport-Security 标头的主机(域)。如果https://example.org发送标头后,该策略仅适用于 example.org,而不适用于 www.example.org。因此,访问 www.example.org 不会导致安全重定向到 HTTPS;它只会命中服务器端重定向(如果已配置),这是不安全的。
那是, https://example.org和https://www.example.org不要互相设置 HSTS。
这个问题是从避免重定向但在跨域重定向时尊重 HSTS 安全性的角度来回答的。
答案2
一般来说,我会说尽可能少地使用重定向,但根据您的 HSTS 策略,第二种选择(您首先使用 HTTPS 转到同一个域名;http://example.org -> https://example.org -> https://www.example.org
)可能是合适的选择。
这样做的原因是,您确实希望客户端停止建立初始的可劫持 HTTP 连接,因为这就是 HSTS 的重点。
但是,如果您在将它们重定向到 HTTPS 时跨域发送它们,它们将仅获得重定向目标域的 HSTS 条目;它们仍会愉快地为原始域建立更多 HTTP 连接(并且每次都会被重定向),从而使它们每次执行 HTTP 时都容易受到劫持。