【问题标题】:firestore permission with gps distance带有gps距离的firestore权限
【发布时间】:2020-03-22 13:04:47
【问题描述】:

如果用户gps位置大于10米,是否可以编写规则阻止阅读文档?
该集合是“商店”和文档(文档 ID 是自动生成的 ID)包含字段 GPS 位置

【问题讨论】:

    标签: google-cloud-firestore firebase-security geofirestore


    【解决方案1】:

    Firestore 的服务器端安全规则只能读取编码到该用户 ID 令牌中的用户信息。因此,这意味着只有将用户的 GPS 位置数据编码到他们的 ID 令牌中,并且以安全的方式执行此操作,才能实现此目的。

    我能想到的步骤:

    1. 在设备上确定用户的位置。
    2. 将该位置发送到云函数(或其他受信任的环境,例如您控制的服务器)。
    3. 以某种方式验证用户确实在此位置。
    4. 将位置设置为用户个人资料中的自定义声明,如here 所示。
    5. 回复客户他们的个人资料已更新。
    6. 返回设备,使用此响应刷新 ID 令牌,使其具有位置信息。
    7. 将请求发送到数据库,该数据库现在将包含此位置信息。
    8. 通过将请求/查询中的信息与文档中的数据进行比较,确保请求的文档在安全规则的要求范围内。

    正如您所看到的,这个过程非常复杂,我什至不确定如何确保第 3 步的安全。所以您必须想知道保护用例是否值得付出努力,或者是否会更好只是限制人们可以在任何时候请求数据的数量和范围之外。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多