【问题标题】:Writing Rules both in Firebase and in your Code在 Firebase 和代码中编写规则
【发布时间】:2016-06-17 06:13:05
【问题描述】:

Firebase 建议我们在其控制台的在线 Firebase 规则部分中为(数据库/存储)编写安全规则,以及我们在代码中的规则(swift/java 等)。为什么是这样?我觉得这会重复吗?

【问题讨论】:

    标签: firebase-security


    【解决方案1】:

    这在客户端-服务器架构中很常见。

    • 服务器必须验证数据以确保没有无效/损坏的数据每次写入数据库。

    • 客户端应该验证数据,以便为用户提供最佳体验。

    在这里举个例子:假设您有一个旅游网站,用户可以在其中选择旅程的开始和结束日期。一个常见的验证是结束日期不能早于开始日期。在 Firebase 数据库安全规则中,这可能是:

    {
      "journeys": {
        ".validate": "newData.child('startAt').val() > now &&
                      newData.child('endAt').val() > newData.child('startAt').val()"
      }
    }
    

    我们在这里做了额外的检查,您之前也不能预订旅行。这已大大简化,但希望能说明服务器端方面。

    在客户端,您通常会显示一个日历。当用户打开该日历时,您要确保他们无法选择今天之前的日期。您还需要确保结束日期只能晚于开始日期。如果您曾经使用过没有实施最后一点的旅游网站,您就会知道它有多烦人。生气的用户会转到其他网站。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-09
      • 1970-01-01
      • 2018-08-27
      • 1970-01-01
      • 2020-07-05
      • 2020-11-25
      • 2020-12-28
      • 1970-01-01
      相关资源
      最近更新 更多