Проблема безопасности поля времени обновления Firebase Firestore - PullRequest
0 голосов
/ 26 ноября 2018

Я разрабатываю простой чат-сайт с использованием Firebase Firestore.И это очевидно, чтобы хранить время сообщения.

Теперь дело в том, что документ добавляется со стороны клиента.Таким образом, пользователь Malcius может добавить документ с поддельным временем.Есть ли способ избежать сценария.

Я пытался использовать облачные функции, но это слишком долго, чтобы отправить сообщение ..

1 Ответ

0 голосов
/ 26 ноября 2018

Вы хотите установить свойство времени сообщения равным метке времени Firebase Server, которое при отправке будет устанавливать его при создании сообщения с использованием 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...