如果在服务器上启用了内容安全策略,如何使用bookmarklet将脚本注入页面?

How to inject script into a page using bookmarklet if the Content Security Policy is enabled on the server?

我有一个书签,它使用jquery并解析页面上的一些元素。要使用jquery,我将动态地创建一个脚本标记(使用src作为jquery URL),并附加到head标记。这对许多网站都很有效。但是,很少有像Facebook这样的网站,bookmarklet无法将外部JS文件注入到DOM中。我开始了解到这种行为是因为响应头"内容安全策略"禁止从任何其他未经授权的域中包含脚本。这是为了禁止XSS Atack。

我有一个真正的案例可以将外部JS文件插入到DOM中。是否有可绕过内容安全策略的解决方案?


自给自足的书签是另一种可能性。这里是jquery 3.3.1。


规范说(至少我认为它仍然如此)CSP不应该阻止书签,但是没有浏览器实现了这一点。您唯一的选择是在浏览器中禁用CSP或使用扩展。