我正在使用 Android 应用,该应用使用firebase 实时数据库来存储来自用户的消息以进行公共聊天。由于我对firebase安全性很陌生,我想知道是否有可能控制大量的消息到公共聊天。
我已经实施了firebase规则,在向公共聊天发送消息之前,需要对用户进行身份验证。
但是我很想知道,如果用户碰巧使用firebase javascript 或 nodejs 库进行身份验证并且编写循环发送,是否可以充斥公共聊天消息不断。因此,使用我的firebase应用程序设置的带宽。
以下是我的公共聊天节点
的Firebase数据库设计示例"exmaplePublicChatName":{
"message1":{
"timestamp": 324324324,
"uid": "uid",
"message": "message1"
},
"message2":{
"timestamp": 324324234,
"uid": "uid",
"message": "message2"
}
}
答案 0 :(得分:1)
你可以使用".write": "!data.exists()" for testing if the same data is repeated also ".validate": "newData.child('timestamp').val() <= root.child('exmaplePublicChatName').child(messageId).child('timestamp').val() - 2000"
来测试两条消息之间的差异是2秒还是没有人可以破解,破解或猜测firebase的随机id生成