一尘不染

从Javascript检测损坏的锁图标(混合的安全/不安全内容)

selenium

我正在努力使网站在HTTPS下可以正常运行。作为其中的一部分,我想确保我们永远不会“破坏锁”。也就是说,我们永远不要在SSL页面上加载非SSL内容,这可能会触发警告或其他指示符,具体取决于浏览器。为了验证这种情况,我想做两件事:

  1. 编写Selenium测试以验证各种操作不会破坏锁。
  2. 用JS编写日志记录代码,以在用户会话期间检查锁是否已损坏,如果存在则重新登录到服务器。

JS中是否可以使用任何方法来检查浏览器的HTTPS锁定图标的损坏/未损坏状态?或等效地,当前页面内容的混合/非混合状态?


阅读 234

收藏
2020-06-26

共1个答案

一尘不染

您无法从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。

2020-06-26