如何从chrome扩展的content_security_policy中删除unsafe-eval

时间:2016-06-08 14:35:48

标签: javascript google-chrome google-chrome-extension content-security-policy

我已删除了evalnew Function与旧版Chrome扩展程序的所有用法。我应该如何更新content_security_policy中的manifest.json部分?

目前它看起来像这样:

{
  "content_security_policy": "script-src 'self' 'unsafe-eval' https://app.xyz.com; object-src 'self'"
}

如果我正确理解了Chrome扩展程序中的CSP,在我从扩展程序代码中删除了所有evalnew Function来电后,我可能会从unsafe-eval <删除manifest.json < / p>

1 个答案:

答案 0 :(得分:1)

  

Eval并禁用相关功能。 [但是]可以通过在您的政策中添加eval()来放宽针对new Function(String)及其相对'unsafe-eval'的政策

这意味着使用evalnew Function的代码只有在您拥有

时才有效
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
在你的清单中

尝试从您的清单中取出此行并运行您的扩展程序。如果一切仍然按预期工作,那么您可以安全地从清单中删除此策略,因为您已正确删除所有已禁用的功能。

Link to CSP

注意:您必须删除与eval相关的所有必要功能(如here所述)。

  

以下代码不起作用:

window.setTimeout("alert('hi')", 10);
window.setInterval("alert('hi')", 10);