如何禁用Firebase数据库的REST API调用?

时间:2017-05-23 06:00:57

标签: rest firebase firebase-realtime-database

使用Firebase BaaS已经有一段时间了,我担心REST API调用会导致数据被盗,或者通过窥探眼睛来大量下载数据。

即使Firebase规则中提出的规则有助于避免大多数用例问题,但一个简单的问题是,如果最终用户使用恶意代码,则允许用户在未经身份验证的情况下读取部分数据库会浪费数据使用量。使用REST API调用卸载整个节点数据。

例证:这是最近在GoogleIO2017中推出的Tic-Tac游戏,该游戏使用Firebase https://tictactoe-io2017.firebaseapp.com/,尽管只有经过身份验证的用户才能在游戏中玩简单的REST API调用https://tictactoe-io2017.firebaseio.com/games.json可以检索所有游戏细节从开始到现在......,权衡开发者的使用费

1 个答案:

答案 0 :(得分:0)

我认为无法在公共端点中禁用REST API(即使用户未通过身份验证也需要获取数据)。但是有一种方法可以使用实时数据库安全规则来限制查询:

  "rules": 
  {
     "my-world-visible-rdb-endpoint":
     {
        ".read": "query.limitToLast>1 && query.limitToFirst < 50",
        ".write": false
     }
  }

上面的代码将强制客户端明确限制结果,并拒绝昂贵的读取,如您提到的示例。