在MDN HTTP严格传输安全(HSTS)中,它有一个HSTS设置示例,如下所示
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload在这里,我可以找到max-age和includeSubDomains在RFC 6979中的对应平均值,但它没有preload的含义。
我在最新的Chrome和火狐浏览器上进行了测试,而且preload似乎什么也不做。无论是否预加载,在请求http请求时,如果使用Chrome,都可以在不请求服务器的情况下找到由Chrome浏览器制作的307 Internal Redirect,这正是HSTS所期望的。
那么,preload**?** 的目的是什么?
此外,即使我添加了HSTS报头,它仍然有机会受到攻击,在用户第一次使用HTTP访问网站时。我们怎样才能减轻这种风险呢?也就是说,在向服务器发送任何请求之前,如何告诉浏览器将域添加到HSTS列表?
附注:
我找到了https://hstspreload.org/,如果需要注册域,需要添加max-age和preload指令。这就是为什么preload是必要的吗?这应该是我应该添加域以确保新用户免受SSL剥离攻击的页面吗?
发布于 2022-03-07 18:45:42
预加载是一个很大的承诺。它将有效地被硬编码到浏览器的代码中。考虑到推出新版本至少需要几个月的时间,它基本上是不可逆转的。
此外,由于它在领域级别下降,错误已经发生。例如,预装domain.com,但覆盖该blog.domain.com,或intranet.domain.com还没有升级到HTTPS。在这一点上,您的选择是: 1)升级到HTTPS,并与零用户一起生活到站点,直到或2)逆转预加载,等待几个月后才能在所有浏览器上推出,并在此之前处理零用户。
HTTPS现在更常见了,所以风险降低了,但是当HSTS预加载第一次出现时,这些才是真正的风险。
因此,preload属性是一个信号,表明站点所有者已经准备好接受这一承诺。它还阻止了其他人提交一个没有使用这个标题的站点(不管是恶意的,还是善意的,但意图是误导的)。
你是正确的,因为它不会在浏览器中“做”任何事情。
还有人谈到检查是否仍在发送预加载头,如果没有删除预加载,但不确定是否已完成。
https://stackoverflow.com/questions/71377849
复制相似问题