2016-02-15 45 views
37

Firebase提供数据库后端,以便开发人员可以专注于客户端代码。如何限制Firebase数据修改?

所以,如果有人把我的firebase uri(例如,https://firebaseinstance.firebaseio.com),然后在其上开发本地

然后,他们是否可以在我的Firebase实例之外创建另一个应用,注册并验证自己以读取我的Firebase应用的所有数据?

回答

38

感谢你们双方的讨论。不过,我想添加一个细节。

@Frank van Puffelen,

您提到了网络钓鱼攻击。实际上有一种方法来保证这一点。

如果您登录到您的googleAPI API Manager控制台,则可以选择锁定您的应用接受请求的HTTP引用链接。

  1. 访问https://console.developers.google.com/apis
  2. 转到您的火力点项目
  3. 转到凭证
  4. 在API键,选择与您的火力点项目相关的浏览器密钥(应具有相同的密钥您使用API​​密钥初始化你的火力应用程序。)
  5. 在“接受来自这些HTTP参照请求(网站),只需添加您的应用程序的URL。

这应该只允许列入白名单的网域使用您的应用。

这还描述了在火力发射,清单在这里:https://firebase.google.com/support/guides/launch-checklist

也许火力文档能做出这样的能见度或默认自动锁定域并要求用户允许访问?

再次,非常感谢!

+1

当我转到Google API控制台时,我看不到锁定HTTP引用链接的选项。屏幕截图会有所帮助。 thx – rattanak

+0

您是否按照上述步骤尝试过?它应该把你带到那里。出于安全原因,我不打算使用screencap。请记住要查找浏览器密钥。祝你好运。 – prufrofro

+2

如何使用混合移动应用程序的Firebase,使用类似离子的框架,如何将白名单工作?有什么建议么? – Dinana

23

有人知道你的URL并不是安全风险。

例如:我没有问题告诉你,我的银行在bankofamerica.com上托管它的网站,它在那里说HTTP协议。除非您也知道我用来访问该网站的凭据,否则了解该网址对您没有任何好处。确保所有的数据坚持要

  • 授权规则,以确保数据的每一位只能是一个结构

    • 验证规则:

      为了保护您的数据,你的数据库应该被保护由授权用户阅读和修改

    这全部包含在Firebase documentation on Security & Rules中,我强烈推荐。

    有了这些安全规则,否则只有这样别人的应用程序可以在数据库中访问数据,如果他们复制你的应用程序的功能,有用户登录到他们的应用程序,而不是你的和登录/读取/写入您的数据库;基本上是一种网络钓鱼攻击在这种情况下,数据库中没有安全问题,尽管可能需要时间让一些权威人员参与。

  • +1

    不太我正在寻找的答案。让我以另一种方式问你。假设我将这个URL提供给了我的firebase'https:// tinderclone.firebaseio.com /'和'https:// tinderclone.firebaseio.com/profiles.json'。他们是真正的firebase数据库。你可以开发一个应用程序,使用电子邮件注册表单和登录表单。由于我的应用程序允许任何人通过电子邮件注册,所以在您注册后,您是否可以阅读所有数据?稍后我会再问你一个问题。谢谢 – rattanak

    +2

    这取决于你如何保护你的数据库。只需添加'“.read”:false'就可以防止任何人看到数据。你可能想要允许多一点,但这一切都取决于你的用例。 [Firebase关于安全和规则的文档](https://www.firebase.com/docs/security/)涵盖了保护数据的安全。 –

    1

    关于验证白名单的移动应用,其中域名是不适用的,火力地堡有

    1)SHA1 fingerprintAndroid应用

    2)App Store ID and Bundle ID and Team ID (if necessary)iOS应用

    您必须在Firebase控制台中进行配置。

    有了这种保护,因为验证不只是如果有人有有效的API密钥,身份验证域等,但也就是从我们获得授权的应用和未来网络domain name/HTTP referrer in case

    表示,我们不必担心这些API键和其他连接参数是否暴露给其他人。

    富勒更多信息,https://firebase.google.com/support/guides/launch-checklist