我想要实现的目标:将页面内的所有HTTP请求升级为HTTPS并报告/记录事件。
服务器支持HTTP和HTTPS。
测试HTML页面。请注意<img>
<html>
<head>
</head>
<body>
<img src="http://example.com/testimage.png" />
</body>
</html>
根据W3C documentation,我设置了我的.htaccess:
Header set Content-Security-Policy "upgrade-insecure-requests; default-src https:"
Header set Content-Security-Policy-Report-Only "default-src https:; report-uri https://report-uri.io/report/..."
当我致电https://example.com/testpage.html时,它会通过HTTPS加载图片,但不会报告此事件。
我错过了什么?
答案 0 :(得分:4)
我不确定upgrade-insecure-requests
或block-all-mixed-content
是否会生成事件,因为它们可以防止不良事件首先发生。
我的推理可能是错的,但我知道block-all-mixed-content
不会产生违规行为。
对于block-all-mixed-content,它显然不会发送报告。来自https://www.w3.org/TR/mixed-content/#strict-opt-in:
此指令在受监控时无效。这个指令是唯一的 效果是在受保护资源上设置策略标志;它会 因此从不违反,也没有报告要求。