Firebase Firestore更新时间字段安全问题

时间:2018-11-25 23:39:36

标签: firebase web google-cloud-firestore

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

现在,问题是从客户端添加了文档。因此,恶意用户可以添加带有伪造时间的文档。有什么办法可以避免这种情况。

我尝试使用云功能,但是发送消息花费的时间太长。

1 个答案:

答案 0 :(得分:3)

您要将消息时间属性设置为等于Firebase Server时间戳,提交后将在使用request.time创建消息时将其设置为Firebase服务器时间戳。

安全规则

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();
}