简单地说:我应该重定向
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。
简单地说:我应该重定向
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。
一般来说,我会说尽可能少地使用重定向,但根据您的 HSTS 策略,第二个选项(您首先使用 HTTPS 访问相同的域名;
http://example.org -> https://example.org -> https://www.example.org
)可能是合适的选项。这里的原因是您真的希望客户端停止建立初始的可劫持 HTTP 连接,因为这就是 HSTS 的全部意义所在。
但是,如果在将它们重定向到 HTTPS 时跨域发送它们,它们将只会获得重定向目标域的 HSTS 条目;他们仍然很乐意为原始域建立更多的 HTTP 连接(并且每次都被重定向),从而使他们在每次执行 HTTP 时都容易受到劫持。
您应该尽可能使用最少数量的重定向。
但是,当使用 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安全的角度来回答的。