【问题标题】:how to set multiple Content Security Policies in a chrome extension manifest.json file如何在 chrome 扩展 manifest.json 文件中设置多个内容安全策略
【发布时间】:2019-04-12 10:40:48
【问题描述】:
在Google chrome documentation 中,我发现我可以添加内容安全策略以允许外部 javascript 文件在我的扩展程序上工作。
但我找不到如何添加多个。它是一个字符串数组吗?
"content_security_policy": "script-src 'self' https://example.com; object-src 'self'"
我试图像这样放置多行,但它不起作用。出现错误:
拒绝加载脚本 https://example.com,因为它违反了以下内容安全策略指令:“script-src 'self' https://example.com”。请注意,'script-src-elem' 没有显式设置,因此 'script-src' 用作备用。
【问题讨论】:
标签:
json
google-chrome-extension
manifest
manifest.json
【解决方案1】:
CSP 策略是单个字符串(包含以分号分隔的 指令 列表及其参数)。它适用于所有扩展页面。
如果您需要包含多个来源的单一政策,您可以这样做。事实上,你已经有了:'self' 和 https://example.com 是两个来源。
阅读有关 CSP 的一般信息和 script-src 指令,例如on the MDN.
语法
script-src 政策可以允许一个或多个来源:
Content-Security-Policy: script-src <source>;
Content-Security-Policy: script-src <source> <source>;
因此,您只需在 script-src 和分号之间用空格分隔它们。
确保您的来源不包含路径。
例如。 https://example.com 可以,但https://example.com/ 或https://example.com/script.js 不行。
如果你需要针对不同页面的多个独立策略,恐怕你做不到。