如何在 Chrome 扩展 Manifest.json 中设置内容安全策略以使 Firebase 正常工作
Posted
技术标签:
【中文标题】如何在 Chrome 扩展 Manifest.json 中设置内容安全策略以使 Firebase 正常工作【英文标题】:How to set Content Security Policy in Chrome Extension Manifest.json in order for Firebase to work 【发布时间】:2015-09-02 13:04:53 【问题描述】:我制作了一个 Chrome 扩展程序并使用 Firebase 将数据收集到数据库中。 它工作了一段时间,但似乎 Chrome 发生了一些变化。 现在,在我的扩展程序上使用 Inspect Element 时,我在 javascript 控制台中收到以下错误:
拒绝加载脚本“https://(myID).firebaseio.com/(otherprivatedata)”,因为它违反了以下内容安全策略指令:“script-src 'self' chrome-extension-resource:”。
此脚本是在 firebase.js:171 处编写的,不是我添加的脚本。
我尝试遵循本指南并按照说明将“content_security_policy”标签添加到我的 manifest.json: https://github.com/firebase/firebase-chrome-extension
我按照说明在 manifest.json 中添加了以下行:
"content_security_policy": "script-src 'self' https://cdn.firebase.com https://*.firebaseio.com; object-src 'self'"
但是,当我添加此行时,现在尝试在 chrome://extensions 中加载脚本时出现错误
加载扩展出错
无法从 ~\XXX\my_ext 加载扩展
清单不是有效的 JSON。第 14 行,第 5 列,语法错误。
它突出显示了我刚刚在上面添加的行 (content_security_policy)。 我究竟做错了什么? Chrome 完全拒绝了“content_security_policy”之后的任何内容。
即使我尝试了 Google 提供的示例代码,它也不起作用。 developer.chrome.com/extensions/contentSecurityPolicy
"content_security_policy": "script-src 'self' https://example.com; object-src 'self'"
如何设置 content_security_policy 以使 Firebase 在扩展程序中工作?
(我的 firebase.jp 已经下载并打包在我的扩展程序中,因为 Chrome 不允许我将其称为远程。)
【问题讨论】:
包含您的完整 manifest.json。可能某处有多余的或缺少的逗号。 【参考方案1】:是的,谢谢 rsanchez...完全忘记了逗号...
...
"options_page": "option.html",
"manifest_version": 2, <- THIS COMMA
"content_security_policy": "script-src 'self' https://cdn.firebase.com https://*.firebaseio.com; object-src 'self'"
现在可以使用了,感谢您的帮助!
【讨论】:
我遇到了这个问题 'content_security_policy' 的值无效。无法加载清单 你在使用版本 3 @John 我是这么认为的......那么清单 v3 的解决方案是什么......无论如何? @SaurabhVerma以上是关于如何在 Chrome 扩展 Manifest.json 中设置内容安全策略以使 Firebase 正常工作的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Chrome 33+ 中通过 GPO 自动安装 Chrome 扩展(Chrome 错误或 GPO 安装的扩展的未记录更改?)