如何限制Firebase数据修改?

Firebase提供数据库后端,以便开发人员可以专注于客户端代码。

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

那么,他们是否可以从我的Firebase实例创build另一个应用,注册并validation自己的身份以读取我的Firebase应用的所有数据?

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

@Frank van Puffelen,

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

如果您login到您的googleAPI API Manager控制台,则可以selectlocking您的应用将接受请求的HTTP引荐来源。

  1. 请访问https://console.developers.google.com/apis
  2. 转到您的Firebase项目
  3. 去凭据
  4. 在API密钥下,select与您的Firebase项目关联的浏览器密钥(应与您用来初始化您的Firebase应用程序的API密钥具有相同的密钥)。
  5. 在“接受来自这些HTTP引用者(网站)的请求”下,只需添加您的应用的url即可。

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

这里还介绍了Firebase的发布清单: https : //firebase.google.com/support/guides/launch-checklist

也许firebase文档可以使这个更明显或默认自动locking域,并要求用户允许访问?

再次,非常感谢!

有人知道你的URL这个事实不是安全风险。

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

为了保护你的数据,你的数据库应该被保护:

  • 确保所有数据都符合所需结构的validation规则
  • 授权规则来确保每位数据只能被授权用户读取和修改

这一切都涵盖在安全和规则的Firebase文档 ,我强烈build议。

有了这些安全规则,别人的应用程序可以访问数据库中的数据的唯一方法是,如果他们复制应用程序的function,让用户login到他们的应用程序,而不是你应用程序,并login/读取/写入你的数据库; 本质上是一种networking钓鱼攻击 在这种情况下,数据库中没有安全问题,尽pipe可能需要一些权力。