1

我有一个 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 的方法。

4

2 回答 2

0

您可以在 Firefox 中执行此操作,但不推荐。打开页面 about:config 并将security.csp.enable设置为false(可能需要重新启动)。

于 2015-03-31T12:09:20.433 回答
0

它是一个与某些表单元素交互的脚本,例如填充文本输入和单击按钮。很简单的东西。

我会查看SDK page-mod,或者对于非 SDK 附加组件,只需监听加载事件并使用常规 DOM API 在事件处理程序中进行操作。

将 SDK 与 page-mod 一起使用可能是最接近chrome.tabs.executeScript一般情况下和 chrome 扩展的东西,所以我会这样做。

于 2013-08-22T02:45:47.250 回答