firebaseio.com和firebaseapp.com之间的区别

3
我的Firebase Web应用程序与两个与此问题相关的URL进行通信:
  • https://*.firebaseapp.com/ (第1个URL)
  • https://*.firebaseio.com/ (第2个URL)
出于Firebase服务范围之外的安全原因,我在我的应用程序中放置了CSP标头(内容=框架-src)。
我将 https://[MY_ID].firebaseapp.com/ (第1个URL)列入白名单,因为它需要进行身份验证。此外,相同的URL在我的前端配置文件中,所以我认为将其放在那里是安全的,并且不会暴露任何机密信息(如果有道理...)。
但是,在测试我的应用程序时,偶尔会出现有关第二个URL的以下错误:

Refused to frame 'https://[OTHER_ID].firebaseio.com/' because it violates the following Content Security Policy directive: "[MY_CSP_DIRECTIVE]".

我的问题是:
一般来说:
  • 这个URL的目的是什么?当我在控制台中收到此错误消息时,我似乎没有错过任何功能。
操作:
  • 使用通配符 https://*.firebaseio.com/ 是否安全?或者这是否会打开与其他(可能恶意)Firebase用户的随机后端通信?
  • 我应该像 https://[OTHER_ID].firebaseio.com/ 这样指定我的ID吗?或者我是否暴露了不应该以任何方式公开的ID?
  • 或者,只要它似乎不影响我的应用程序,我应该忽略此错误?
1个回答

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

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

如果每个用户都有一个子域,则是的,您正在列出所有子域,因此任何人的Firebase代码都可以执行。
总的来说,您希望尽可能具体地使用CSP,而不会引起问题。通常到子域已经足够具体,但如果选择,甚至可以指定到特定目录或文件。通常不建议列出所有子域。即使网站当前没有在另一个子域上提供危险资源,他们随时可以添加一个。
通过在CSP中列出白名单,您不会暴露用户不知道的任何内容。他们将从“源”选项卡中了解到该域。如果您不希望用户看到直接来源,则必须使用代理。
如果这不会影响你的应用程序,我仍然更喜欢以某种方式修复问题,否则它会在浏览器控制台中留下可怕的消息(虽然大多数用户不会查看),并且会使后续实现report-uri变得痛苦,因为会有很多误报。修复child-src与io域,并找出它的作用,如果不是你需要的东西,可以考虑将其删除。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接