我正在构建网站,想知道如果第一个请求是由 HTTP 发出的,我如何确保它是安全的。HSTS 做到了这一点,但只是部分做到了。
我认为不打开 HTTP 端口可以解决这个问题。但这是标准吗?我的网站是 B to B,所以 SEO 不是问题。用户直接访问我的地址,但假设可以使用 HTTP。任何的想法?
简短的回答:
由于预加载,即使是第一次访问,它也会保护您的访问者:浏览器将知道您的域必须在第一次联系之前仅使用 https 联系(它将在他们的源代码中,请参阅https://github.com/ssllabs /research/wiki/Preload-Lists)。
(当然,保持你的 301 重定向 http=>https)
为什么关闭端口 80 不是一个好主意?让我们看看这两个选项:
HSTS 和端口 80 关闭的选项:
随后访问http://example.com:没有任何反应
第一次访问https://example.com:用户是安全的,HSTS 被保留
如果发生攻击:
HSTS 和端口 80 开放的选项:
后续访问http://example.com:用户被安全地重定向到 https(感谢 HSTS)
第一次访问https://example.com:用户是安全的,HSTS 被保留
如果发生攻击:
后续访问http://example.com:用户被安全地重定向到 https(感谢 HSTS)
第一次访问https://example.com:用户是安全的,HSTS 被保留
如您所见,打开端口 80 以响应 301 重定向到 https 可以提高一点安全性(关闭它不会提高安全性,并且可能会使您的访问者感到困惑)
我建议使用将 http 更改为 https 的防火墙重定向规则。