我的Firebase网络应用与两个与此问题相关的网址进行通信:
出于安全原因,在Firebase服务范围之外,我将CSP标头放在我的应用中(content = frame-src)。
我将https://[MY_ID].firebaseapp.com/
(第一个网址)列入白名单,因为身份验证需要它。此外,在我的前端配置相同的网址,所以我觉得把它放在那里并且不暴露任何秘密(如果这是有道理的......)是安全的。
但在测试我的应用时,我偶尔会遇到有关第二个网址的以下错误:
拒绝框架' https://[OTHER_ID].firebaseio.com/'因为它 违反以下内容安全策略指令: " [MY_CSP_DIRECTIVE]"
我的问题是:
一般情况:
操作:
https://*.firebaseio.com/
列入白名单是否安全?或者这是否会打开与其他(可能是恶意的)Firebase用户的随机后端的通信? https://[OTHER_ID].firebaseio.com/
吗?或者我是否暴露了一个我不应该以任何方式暴露的ID?答案 0 :(得分:0)
我承认我自己并不熟悉Firebase,但我知道所有与CSP相关的方面。
使用通配符将https://*.firebaseio.com/列入白名单是否安全?或者这是否会打开与其他(可能是恶意的)Firebase用户的随机后端的通信?
如果每个用户都获得了子域名,那么您可以将所有子域名列入白名单,这样就可以执行任何人的firebase代码。
更一般地说,您希望尽可能地使用CSP,而不会导致问题。通常情况下,子域是特定的,但您甚至可以指定到特定目录甚至文件(如果您选择)。通常不建议将所有子域列入白名单。即使某个网站当前未在另一个子域上提供危险资源,他们也可以随时添加一个。
并且您不会通过CSP中的白名单揭露用户赢得的任何内容。他们将从“来源”标签中了解该域名。如果您不希望用户看到直接来源,则必须使用代理。
如果它不影响您的应用程序,我仍然希望以某种方式解决问题,否则会在浏览器控制台中留下一个可怕的消息(不是大多数用户会看到的)并且会实现{{后来所有误报都带来了痛苦。修复report-uri
与io域名并找出它的作用,如果它不是你需要的东西,我会看看你是否可以删除它。