Chrome内容安全策略即使在manifest.json中进行更改后也不允许运行eval()

问题描述 投票:0回答:1

我正在使用Google Blockly开发Chrome应用。为了动态运行JavaScript代码,我想使用eval()函数。


Chrome app relaxing the default policy using manifest

我尝试了上面的链接。我使用了chrome文档建议的清单。


manifest.json

{
  "manifest_version": 2,
  "name": "Blockly",
  "version": "1.0.0",
  "icons": {
    "128": "icon_128.png"
  },
  "permissions": [],
  "app": {
    "background": {
      "scripts": ["background.js"]
    }
  },
  "minimum_chrome_version": "46",
  "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
}

inject.js

window.addEventListener("load", function() {
 document.getElementById("myBtn").addEventListener("click", function() {
  let code = 'initiate();';
  try {
    eval(code);
   } catch (e) {
     console.log(e); 
  }
 });
});

我仍然收到此错误:

EvalError:拒绝将字符串评估为JavaScript,因为以下内容不允许'unsafe-eval'脚本源内容安全政策指令:“ script-src'self'blob:文件系统:“ wasm-eval””。

在HTMLButtonElement。 (inject.js:40)

javascript google-chrome-app content-security-policy
1个回答
0
投票

我找到答案

Content Security Policy in Chrome App

Chrome扩展程序可让您放宽默认的内容安全政策; Chrome应用不会。

© www.soinside.com 2019 - 2024. All rights reserved.