我正在努力使网站在HTTPS下可以正常运行。作为其中的一部分,我想确保我们永远不会“破坏锁”。也就是说,我们永远不要在SSL页面上加载非SSL内容,这可能会触发警告或其他指示符,具体取决于浏览器。为了验证这种情况,我想做两件事:
JS中是否可以使用任何方法来检查浏览器的HTTPS锁定图标的损坏/未损坏状态?或等效地,当前页面内容的混合/非混合状态?
您无法从JavaScript本身检测到此错误,但是可以使用Content-Security- Policy(CSP) HTTP标头指示浏览器将混合内容的报告发送到服务器或第三方聚合服务。
这是一个CSP标头的示例,该标头将混合内容报告给第三方服务report-uri.io:
Content-Security-Policy-Report-Only: default-src https:; report-uri https://report-uri.io/report/<YOUR_NAME_HERE>
报告URI的维护者撰写的这篇文章详细介绍了其工作原理。如果愿意,还可以配置CSP标头以报告到自己的URL。