Javascript 如何在chrome扩展版本3中允许eval

Javascript 如何在chrome扩展版本3中允许eval,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在将我的chrome扩展升级到清单版本3。但是,我的扩展在其内容脚本中使用了eval。在版本3中,我得到以下错误 Error in event handler: EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: &quo

我正在将我的chrome扩展升级到清单版本3。但是,我的扩展在其内容脚本中使用了
eval
。在版本3中,我得到以下错误

Error in event handler: EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self'".
我能够在版本2中修复此问题,如下所示:

 "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
但这已经改变了,我尝试了很多事情

"content_security_policy": {
    "script-src": "self unsafe-eval",
    "unsafe-eval": "object-src self",
    "unsafe-inline": "self"
}

我不确定这里到底可以做什么,所以如果您能使用
函数(“return”+toBeEvaluated)(
构造函数)绕过它,我们将不胜感激;如果这也被列入黑名单,请查看他们是否离开了
setTimeout(待评估,1)
out。这也可以作为替代品

但是这个修复是没有用的——我们需要从源头上修复这个问题。
需要修正关于eval命令的迷信。人们需要停止对权力的恐惧。

看看这个网站。“脚本src、…、和worker src指令可能只有以下值:
sandbox
的self、none、任何本地主机源[…]CSP修改都没有这样的新限制。”您必须在中运行
eval
(或摆脱
eval
?)我无法摆脱eval:(用户可以模拟API,为此,有时还可以提供自定义javascript,我只能用“eval”进行评估)谷歌还将
函数
构造函数列入黑名单。但在这种情况下,这与迷信或恐惧无关。谷歌试图保护其用户免受恶意扩展开发人员的攻击。Chrome Web Store中出现了许多使用
eval
的加密代码或外部密码窃取用户数据的可疑扩展脚本。既然谷歌确保扩展可以运行的所有代码都在发布前检查的源代码中,这就不可能发生。这是一个非常好的消息。我没有跟踪-什么用户?!你是客户端。你是用户。这是一个客户端用户脚本,实际上是为了保护他正在使用的浏览器和他自己他必须访问。他不是在开发用户脚本,而是在开发浏览器扩展。在大多数情况下,浏览器扩展旨在分发给其他用户,以便他们可以安装它(例如AdBlock)我认为它们被称为插件,并强调这一点-与插件完全不同,而我拙劣的理解是::扩展是增强现有浏览器行为的脚本,并由同一浏览器解释。新函数,setTimeout,eval,都是一样的:(