firebaseio.com和firebaseapp.com

时间:2017-11-29 22:07:35

标签: javascript firebase firebase-security content-security-policy

我的Firebase网络应用与两个与此问题相关的网址进行通信:

  • https://*.firebaseapp.com/(第一个网址)
  • https://*.firebaseio.com/(第二个网址)

出于安全原因,在Firebase服务范围之外,我将CSP标头放在我的应用中(content = frame-src)。

我将https://[MY_ID].firebaseapp.com/(第一个网址)列入白名单,因为身份验证需要它。此外,在我的前端配置相同的网址,所以我觉得把它放在那里并且不暴露任何秘密(如果这是有道理的......)是安全的。

但在测试我的应用时,我偶尔会遇到有关第二个网址的以下错误:

  

拒绝框架' https://[OTHER_ID].firebaseio.com/'因为它   违反以下内容安全策略指令:   " [MY_CSP_DIRECTIVE]"

我的问题是:

一般情况:

  • 这个网址的目的是什么?到目前为止,当我在控制台中收到此错误消息时,我似乎不会错过任何功能。

操作:

  • 使用通配符将https://*.firebaseio.com/列入白名单是否安全?或者这是否会打开与其他(可能是恶意的)Firebase用户的随机后端的通信?
  • 我应该指定我的ID https://[OTHER_ID].firebaseio.com/吗?或者我是否暴露了一个我不应该以任何方式暴露的ID?
  • 或者我应该忽略错误,只要它似乎不会影响我的应用程序?

1 个答案:

答案 0 :(得分:0)

我承认我自己并不熟悉Firebase,但我知道所有与CSP相关的方面。

  

使用通配符将https://*.firebaseio.com/列入白名单是否安全?或者这是否会打开与其他(可能是恶意的)Firebase用户的随机后端的通信?

如果每个用户都获得了子域名,那么您可以将所有子域名列入白名单,这样就可以执行任何人的firebase代码。

更一般地说,您希望尽可能地使用CSP,而不会导致问题。通常情况下,子域是特定的,但您甚至可以指定到特定目录甚至文件(如果您选择)。通常不建议将所有子域列入白名单。即使某个网站当前未在另一个子域上提供危险资源,他们也可以随时添加一个。

并且您不会通过CSP中的白名单揭露用户赢得的任何内容。他们将从“来源”标签中了解该域名。如果您不希望用户看到直接来源,则必须使用代理。

如果它不影响您的应用程序,我仍然希望以某种方式解决问题,否则会在浏览器控制台中留下一个可怕的消息(不是大多数用户会看到的)并且会实现{{后来所有误报都带来了痛苦。修复report-uri与io域名并找出它的作用,如果它不是你需要的东西,我会看看你是否可以删除它。