【问题标题】:Chrome app content security policy not leting to run eval() even after made changes in manifest.json即使在 manifest.json 中进行更改后,Chrome 应用内容安全策略也不允许运行 eval()
【发布时间】:2020-06-03 13:57:33
【问题描述】:

我正在使用 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】:

我找到了答案

Content Security Policy in Chrome App

Chrome 扩展将让您放宽默认的内容安全策略; Chrome 应用不会。

【讨论】:

    猜你喜欢
    • 2016-06-28
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 2012-01-20
    • 2020-10-19
    • 2023-02-09
    相关资源
    最近更新 更多