我正在开发一个将HSTS标头添加到Web应用程序的项目。
作为预备工作,我在报告模式下仅使用default-src https指令添加了CSP标头。目的是评估违规行为并确定添加HSTS标头是否会破坏任何用例
问题:
答案 0 :(得分:0)
如果您只在服务器上使用https,我会认为很明显。你有https设置吗?您是否设置了重定向以强制将所有 http请求重定向到https?通过查看您的服务器配置,这些问题应该很容易回答,我认为您不需要CSP来回答它们。如果答案都不是"是",那你为什么要考虑HSTS?
CSP支持不是普遍的(虽然不可否认HSTS),并且,通过这些事情,它通常是旧的,不太常见的浏览器会破坏,因为你可能会测试常见的浏览器,所以无论你是否方法会让你有信心继续下去是值得商榷的。
您应该注意的一件事是,如果您使用的是includeSubDomains标志。如果它影响的服务器数量超出了您的预期,这可能会导致问题,但CSP无法提供帮助,因为您可能只在您认为会受影响的服务器上设置CSP。更多信息:https://serverfault.com/questions/665234/problems-using-hsts-header-at-top-level-domain-with-includesubdomains。
另请注意,一旦实施HSTS,就不能再在浏览器中绕过证书错误。并不是说你应该这样做,而是这个旗帜的另一个故意影响并不是每个人都知道的。
请注意,解决HSTS问题的唯一方法(例如,如果你发现你毕竟需要http),除了删除标题并等待政策到期之外,就是将最大年龄设置回零并希望人们使用https访问您的网站以获取此新的HSTS政策并覆盖之前的政策。使用Chrome,可以手动查看和删除政策,但如果您有任意数量的访问者,并且在完全重新安装之前没有任何方法可以与其他浏览器进行此操作,那么这是不切实际的。
最好的方法是充分了解HSTS是什么,以及上面的警告,然后从低到期开始,只要您没有遇到任何问题,就可以慢慢建立。
还有预装清单,但我会保持远离那个,直到你运行至少6个月没有问题。