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

标签 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可以检索从开始到现在的所有游戏详细信息..,权衡开发者的使用费用

最佳答案

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

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

上面的代码将强制客户端显式限制结果并拒绝昂贵的读取,就像您提到的示例一样。

关于rest - 如何禁用 Firebase 数据库的 REST API 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44126882/

相关文章:

.net - RESTful API 与 Web 服务 API

android - Volley POST 请求收到错误结果

java - 从 firebase-crashlytics 18.3.3 更新到 18.3.4 时 Android 应用程序崩溃

swift - 使用 Firebase,Swift removeObserver(withHandle 不会删除观察者

swift - urlSession.dataTaskWithRequest(request)的含义

angularjs - 如何使用 AngularJS 的 $resource 和 spring rest Controller 获取 bool 值

reactjs - 在 React 中使用 Firebase Promise setState

database - Flutter:如何为我们要上传到Firebase数据库的每个元素设置数据类型?

javascript - 如何在firebase中通过uid获取用户信息?

android - DataSnapshot 值是否有可能为空?