使用 javascript 检测 CSP 违规

Detect CSP violations with javascript

是否可以通过 javascript 检测内容安全策略违规?

我的 CSP 工作并发送报告,我看到一些 url 被注入,可能是由浏览器插件注入的。我想向用户显示一个提示,一些插件试图修改页面。

我能否以某种方式检测到与 javascript 的中止连接(当然,它本身已列入 CSP 的白名单)?

根据 W3C CSP specification,违规会触发 securitypolicyviolation 事件。您可以为此添加一个事件侦听器。

document.addEventListener("securitypolicyviolation", function(e) {
    alert("Something is trying something bad!");
});

有关此事件的属性,请参阅上面的 link。

在 Firefox Release 中,您需要启用 security.csp.enable_violation_events 首选项才能启用此功能。请参阅 Experimental Features in Firefox 文档。