如何在 chrome 扩展 manifest.json 文件中设置多个内容安全策略
Posted
技术标签:
【中文标题】如何在 chrome 扩展 manifest.json 文件中设置多个内容安全策略【英文标题】:how to set multiple Content Security Policies in a chrome extension manifest.json file 【发布时间】: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' 用作备用。
【问题讨论】:
【参考方案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
不行。
如果你需要针对不同页面的多个独立策略,恐怕你做不到。
【讨论】:
以上是关于如何在 chrome 扩展 manifest.json 文件中设置多个内容安全策略的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Chrome 33+ 中通过 GPO 自动安装 Chrome 扩展(Chrome 错误或 GPO 安装的扩展的未记录更改?)