我有一个 firefox 插件,用于通过在页面中注入一些 javascript(通过在 head 元素下创建一个元素,并将其 innerHTML 值设置为要执行的 javascript)与 github 的 web 应用程序进行交互。
但是,它最近刚刚停止工作。然后我看到以下警告:
Timestamp: 8/21/13 5:45:42 PM
Warning: CSP WARN: Directive inline script base restriction violated
Source File: https://github.com/login
Line: 0
Source Code:
myjscode();...
Github 返回以下标头:
X-Content-Security-Policy: default-src *; script-src 'self' https://github.global.ssl.fastly.net https://jobs.github.com https://ssl.google-analytics.com https://collector.githubapp.com https://analytics.githubapp.com; style-src 'self' 'unsafe-inline' https://github.global.ssl.fastly.net; object-src 'self' https://github.global.ssl.fastly.net
我知道 Firefox 开始通过 X-Content-Security-Policy 标头支持 CSP,但我认为会有一些机制来防止从插件中注入代码来制动。
有谁知道扩展 API 是否有任何特定机制可以在页面中注入 javascript 并绕过 CSP 设置?基本原理是 - 如果用户安装了插件,他/她信任它,并且应该有绕过 CSP 的方法。