首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指令'script-src‘中的不安全CSP值“’不安全-eval‘”

指令'script-src‘中的不安全CSP值“’不安全-eval‘”
EN

Stack Overflow用户
提问于 2021-08-17 04:43:54
回答 1查看 7.9K关注 0票数 10

当试图将第三方js文件加载到内容脚本中时,使用的是chrome扩展名。我正面临一个unsafe-eval错误

我的manifest.json看起来像这样

代码语言:javascript
复制
{
    "manifest_version": 3,
    "name": "Test",
    "version": "1.0",
    "host_permissions": ["https://mail.google.com/"],
    "content_scripts": [
        {
            "matches": [
                "https://mail.google.com/*"
            ],
            "js": ["3rdparty.js", "code.js"],
            "run_at": "document_end"
        }
    ]
}

加载之后,我收到了这个错误

错误日志: EvalError:拒绝将字符串计算为JavaScript,因为在以下内容安全策略指令中,‘不安全-eval’是不允许的脚本来源:" script -src 'self'“。

因此,我尝试将csp添加到清单文件中。

代码语言:javascript
复制
{
...,
"content_security_policy": {
    "extension_pages": "script-src 'self' 'unsafe-eval'; object-src 'self'"
  }
}

然后,我收到了chrome中的错误,告诉它无法加载扩展

‘content_security_script._pages’:指令'script-src'. 中的不安全CSP值“‘不安全-eval’”

EN

回答 1

Stack Overflow用户

发布于 2021-09-26 10:02:31

恐怕在清单3中您不能使用'unsafe-eval'

您是在执行远程代码还是任意字符串?您不能再使用chrome.scripting.executeScript({code:‘.})、eval()和新函数()执行外部逻辑。

您必须将所有脚本移动到远程或本地文件中。您可以在远程文件上生成脚本(例如。并使用chrome.scripting.executeScript (而不是使用eval() )执行它,或者考虑迁移回MV2。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68811797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档