true在firebase数据库规则中意味着什么

时间:2018-08-07 06:10:44

标签: firebase firebase-realtime-database firebase-authentication firebase-security-rules

我从Firebase开始,我有一个非常基本的问题

在我的数据库的Firebase规则中:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

根据google,这意味着任何人都可以在数据库上进行读写。
我的问题是谁?

让我澄清一下:

  1. 我不想强迫我的应用程序用户登录,也不想在Google上拥有帐户才能使用它。
  2. 此项目未与其他人,其他应用或其他任何东西共享

有人可以访问存储在Firebase中的数据吗?如果是,怎么办?

如果是的话,我又该如何保护数据而不强迫用户拥有凭据?

2 个答案:

答案 0 :(得分:3)

true在这里意味着您的数据实际上没有任何保护。任何拥有该工具以及您Firebase项目名称的人都可以完全读取和写入您的所有数据。应该考虑到您的数据库具有极端的隐私问题,这对于您存储的有关用户的数据尤其不利。

任何人都可以使用REST API这样简单的方法通过一个请求访问整个数据库(或删除整个数据库)。

如果没有Firebase身份验证,则应限制通过您控制的其他某些受保护API的所有访问。全面探讨如何设置其他API不在此问题的范围内。

答案 1 :(得分:0)

引用:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

您可以想象,作为安全门的读取和写入的布尔值,其中true是开放访问,而false是死胡同。将其声明为“ true”表示人们甚至可以使用您的应用程序(以某种方式)甚至不使用您的应用程序。

您的积分是:

  1. 此应用仅供私人使用。

  2. 此应用程序不会也永远不会分发给其他无关人员。

但是,如何确保其他人不会攻击/访问您的数据库?人们仍然可以通过浏览器控件(JS,Angular等)访问您的数据库。

请记住,逆向工程是可能的,他们可以获得您的数据库信息以及您的firebase凭证JSON文件,这可能会使您的数据处于危险之中。

无论如何,建议您限制安全规则。我的建议是实施一个基于角色的简单安全规则,以防止滥用和未经授权的API调用。