我编写了一个使用“eval”的Firefox插件。假设没有办法避免使用eval,那么在插件中使这个安全的最佳方法是什么?
评估我的插件的编辑很友好地指定请评估无法访问任何浏览器功能的沙箱中的脚本,但我不得不说我不知道如何做到这一点
插件包含来自Dean Edward's Unpacker和Codemirror的代码,这是使用eval的地方。
有人能帮忙吗?
答案 0 :(得分:1)
请评估无法访问任何浏览器功能的沙箱中的脚本,但我不得不说我不知道如何执行此操作
使用Cu.Sandbox和Cu.evalInSandbox。有了这些,您可以单独运行任何javascript,然后使用structured clones对象以安全的方式访问结果。
要将文件中的脚本加载到沙箱中,您还可以使用subscript loader