如何在 chrome 扩展 manifest.json 文件中设置多个内容安全策略

ala*_*din 6 json manifest google-chrome-extension manifest.json

Google chrome 文档中,我发现我可以添加内容安全策略以允许外部 javascript 文件在我的扩展程序上工作。

但我找不到如何添加多个。它是一个字符串数组吗?

"content_security_policy": "script-src 'self' https://example.com; object-src 'self'"
Run Code Online (Sandbox Code Playgroud)

我试图像这样放置多行,但它不起作用。去错误:

拒绝加载脚本https://example.com,因为它违反了以下内容安全策略指令:“script-src 'self' https://example.com ”。请注意,'script-src-elem' 未明确设置,因此使用 'script-src' 作为后备。

Xan*_*Xan 5

CSP 策略是单个字符串(包含以分号分隔的指令及其参数列表)。它适用于所有扩展页面。

如果您需要具有多个来源的单一策略,您可以这样做。事实上,你已经有了:'self'https://example.com是两个来源。

阅读有关 CSP 的一般性和script-src指导性信息,例如在 MDN 上

句法

script-src策略可以允许一个或多个来源:

Content-Security-Policy: script-src <source>;
Content-Security-Policy: script-src <source> <source>;
Run Code Online (Sandbox Code Playgroud)

所以你只需要在script-src和分号之间用空格分隔它们。

确保您的源不包含路径。
例如https://example.com可以,但https://example.com/https://example.com/script.js不是。

如果您需要针对不同页面的多个独立策略,恐怕您无法做到。