有没有人知道是否有办法从firefox附加扩展加载任何外部可执行javascript?我查看了scriptloader.loadSubScript,但看起来它只能从本地资源加载。
任何帮助都将不胜感激。
答案 0 :(得分:3)
你总是可以xhr一个文件,把内容保存到磁盘,然后使用带加载项的scriptloader.loadSubScript
这会违反AMO政策,因此您无法将加载项上传到http://addons.mozilla.org
答案 1 :(得分:2)
正如@erikvold已经指出的那样,这样做会带来安全隐患,也违反了AMO规则(因为它存在安全隐患)。
考虑您的服务器遭到入侵,或者有一种方法可以让MITM连接检索远程脚本(TLS错误任何人:p),或者您出售您的域名,新的所有者决定发送脚本直接收集信用卡信息来自用户的硬盘......
但是,可以在非特权环境中运行远程脚本,就像它在网站中运行一样。
Sandbox
。沙盒应该是非特权的,例如将域中的URL传递给构造函数。这基本上就像Greasemonkey(执行用户脚本)这样的工具。
以安全的方式创建和使用Sandbox是很困难的,Sandbox没有特权会禁止很多用例,但它可能适用于你的东西。
答案 2 :(得分:0)
示例:
const {Cc,Ci,Cu} = require(“chrome”);
Cu.import(“文件的url /路径”);
注意:
使用窗口,导航器等DOM对象的js文件将返回错误,说“窗口/导航器未定义”。这只是因为main.js代码无法访问DOM。
有关详细信息,请参阅此thread。