Chrome应用中的内容安全政策

 蔡伟钊cc 发布于 2023-02-02 18:55

我的Chrome应用有以下清单:

{
    "name": ",
    "version": "1.0.3",
    "manifest_version": 2,
    "description": "Chrome Extension for.",
    "icons": {
        "16": "images/test.png",
        "19": "images/test.png",
        "256": "images/test.png"
    },
    "app": {
        "background": {
            "scripts": [
                "background.js"
            ]
        }
    },

    "sandbox": {
        "js": [
            "lib/test-api.js"
        ]
    },
    "permissions": [
        "",
        "notifications",
        "storage",
        "videoCapture"
    ]
}

我有一个运行的脚本文件eval.我已经阅读了有关CSP和沙盒的内容,但我仍然收到此错误:

拒绝将字符串评估为JavaScript,因为'unsafe-eval'不是以下内容安全策略指令中允许的脚本源:"default-src'self'chrome-extension-resource:".请注意,'script-src'未明确设置,因此'default-src'用作后备.

小智.. 43

您是否尝试根据CSP链接将CSP行添加到清单中?

"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"

@brucek我认为他所指的错误是"content_security_policy"仅允许扩展和旧版打包应用,但这是一个打包的应用程序.在应用程序中,您需要使用沙盒来使用eval.请参阅https://developer.chrome.com/apps/contentSecurityPolicy (4认同)

是的,但我使用的是app package app (3认同)


Rob W.. 35

你正在展示是不是一个Chrome扩展,但Chrome应用程式.
Chrome扩展程序可让您放宽默认的内容安全政策; Chrome应用不会.(来源:Chrome应用的CSP文档 ;请注意:此页面与Chrome扩展程序的CSP文档不同).

下一行适用于应用和扩展程序:

内容安全策略不适用于特定脚本,而是适用于整个页面.因此,您只能为整个页面声明一个沙箱(使用sandbox.pages清单文件中的密钥).您不能将"js"用作沙箱中的键.

在Chrome扩展程序中,可以放宽CSP,例如允许eval使用以下政策:

"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"

要在扩展程序中转换您的应用程序:请勿使用apps密钥,而是使用background密钥.使用以下清单,您将能够eval在后台页面中使用:

{
    "name": "Whatever",
    "version": "1.0.3",
    "manifest_version": 2,
    "background": {
        "scripts": [
            "background.js"
        ]
    },
    "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
}

(省略icons/ permissions因为它们与示例无关;省略sandbox因为它不需要)

2 个回答
  • 你正在展示是不是一个Chrome扩展,但Chrome应用程式.
    Chrome扩展程序可让您放宽默认的内容安全政策; Chrome应用不会.(来源:Chrome应用的CSP文档 ;请注意:此页面与Chrome扩展程序的CSP文档不同).

    下一行适用于应用和扩展程序:

    内容安全策略不适用于特定脚本,而是适用于整个页面.因此,您只能为整个页面声明一个沙箱(使用sandbox.pages清单文件中的密钥).您不能将"js"用作沙箱中的键.

    在Chrome扩展程序中,可以放宽CSP,例如允许eval使用以下政策:

    "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
    

    要在扩展程序中转换您的应用程序:请勿使用apps密钥,而是使用background密钥.使用以下清单,您将能够eval在后台页面中使用:

    {
        "name": "Whatever",
        "version": "1.0.3",
        "manifest_version": 2,
        "background": {
            "scripts": [
                "background.js"
            ]
        },
        "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
    }
    

    (省略icons/ permissions因为它们与示例无关;省略sandbox因为它不需要)

    2023-02-02 18:56 回答
  • 您是否尝试根据CSP链接将CSP行添加到清单中?

    "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
    

    2023-02-02 18:56 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有