【问题标题】:Firebase Firestore update time field security issueFirebase Firestore 更新时间字段安全问题
【发布时间】:2019-04-27 15:00:59
【问题描述】:

我正在使用 Firebase Firestore 开发一个简单的聊天网站。并且很明显存储消息时间。

现在的问题是该文档是从客户端添加的。因此,malcius 用户可以添加虚假时间的文档。有什么办法可以避免这种情况。

我尝试过使用云功能,但是发送消息需要很长时间..

【问题讨论】:

    标签: firebase web google-cloud-firestore


    【解决方案1】:

    您想将消息时间属性设置为等于 Firebase 服务器时间戳,提交时将使用 request.time 在创建消息时设置它,您现在可以验证它等于。

    安全规则

    allow create: if request.resource.data.messageTime == request.time && 
                  // other rules for the message body
    

    客户端 JS 代码

    const message = {
        text: 'Hello',
        messageTime: firebase.firestore.FieldValue.serverTimestamp();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-22
      • 2019-06-17
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      • 1970-01-01
      • 2021-06-14
      • 2018-08-01
      相关资源
      最近更新 更多