你可以从firefox扩展加载外部可执行的JavaScript吗?

时间:2015-01-22 21:42:33

标签: firefox firefox-addon firefox-addon-sdk

有没有人知道是否有办法从firefox附加扩展加载任何外部可执行javascript?我查看了scriptloader.loadSubScript,但看起来它只能从本地资源加载。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:3)

你总是可以xhr一个文件,把内容保存到磁盘,然后使用带加载项的scriptloader.loadSubScript

这会违反AMO政策,因此您无法将加载项上传到http://addons.mozilla.org

答案 1 :(得分:2)

正如@erikvold已经指出的那样,这样做会带来安全隐患,也违反了AMO规则(因为它存在安全隐患)。

考虑您的服务器遭到入侵,或者有一种方法可以让MITM连接检索远程脚本(TLS错误任何人:p),或者您出售您的域名,新的所有者决定发送脚本直接收集信用卡信息来自用户的硬盘......

但是,可以在非特权环境中运行远程脚本,就像它在网站中运行一样。

  • 创建Sandbox。沙盒应该是非特权的,例如将域中的URL传递给构造函数。
  • 检索您的脚本,例如与XHR。
  • 沙箱中的
  • Evaluate your script并提取可能为您生成的所有数据。

这基本上就像Greasemonkey(执行用户脚本)这样的工具。

以安全的方式创建和使用Sandbox是很困难的,Sandbox没有特权会禁止很多用例,但它可能适用于你的东西。

答案 2 :(得分:0)

尝试使用Components.utils.import

示例:

const {Cc,Ci,Cu} = require(“chrome”);

Cu.import(“文件的url /路径”);

注意:

使用窗口,导航器等DOM对象的js文件将返回错误,说“窗口/导航器未定义”。这只是因为main.js代码无法访问DOM。

有关详细信息,请参阅此thread