You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firefox Manifest V3扩展中Chrome sandbox等效替代及eval执行问题

在Firefox Manifest V3扩展中执行eval的解决方案

Firefox Manifest V3支持执行eval,但它的实现逻辑和Chrome的sandbox字段机制不同,你需要通过正确配置内容安全策略(CSP)来实现:

1. 配置CSP的sandboxed_pages策略

Firefox MV3没有直接对应Chromesandbox字段的配置,而是通过content_security_policy中的sandboxed_pages块来为指定页面开放eval权限。你需要在manifest.json中添加如下配置:

"content_security_policy": {
  "extension_pages": "script-src 'self'; object-src 'none';",
  "sandboxed_pages": "script-src 'self' 'unsafe-eval'; object-src 'none';"
}
  • extension_pages是扩展核心页面(背景页、内容脚本等)的默认CSP,保持默认安全配置即可;
  • sandboxed_pages专门用于需要放宽权限的页面,添加'unsafe-eval'后,该策略下的页面即可正常执行eval。

同时要确保你的custom_page.htm是作为沙箱页面加载的:比如通过扩展内的iframe嵌入,或者用browser.tabs.create直接打开该页面,Firefox会自动将匹配的页面应用sandboxed_pages的CSP规则。

2. 关键注意事项

  • 不要在extension_pages的CSP中添加'unsafe-eval',这会破坏整个扩展的安全性,Firefox也不推荐这种做法;
  • new Function()这类动态代码执行方式和eval受同样的CSP限制,同样需要在sandboxed_pages策略中开放权限;
  • 如果你是在内容脚本或背景脚本中尝试执行eval,这种场景下无法通过CSP放宽权限,只能将动态代码逻辑转移到沙箱页面中运行。

内容的提问来源于stack exchange,提问作者Guido Preite

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 11:33:01