Правила Firebase защищают счетчик автоинкремента? - PullRequest
0 голосов
/ 07 мая 2020
• 1000 1010 *. Чтобы подсчитать лайки.

Я сделал для этого правило, позволяющее подсчитывать +1 лайк за раз:

   "likes": {
     ".write": "newData.isNumber() && 
     ((!data.exists() && newData.val() === 1) || newData.val() === data.val()+1)"
   },

это не позволяет кому-то ставить 1000 лайков сразу в пост, но не защитить кого-то, чтобы запустить скрипт, вставляющий +1, как каждую секунду ... какое-либо решение для этого? как защитить счетчик в правилах firebase?

1 Ответ

1 голос
/ 07 мая 2020

Если вы выполняете приращение узла счетчика из внешнего интерфейса, вам действительно нужно назначить права доступа на запись для пользователей. Невозможно избежать того, чтобы некоторые злоумышленники увеличили его.

Одно из решений - реализовать обновление счетчика в облачной функции. Облачные функции выполняются в серверной части и обходят все правила безопасности (поскольку они выполняются в серверной части, они рассматриваются как « привилегированные среды »). Таким образом, вы можете запретить любой доступ на запись к узлу счетчика.

Вы должны использовать облачную функцию, которая запускается при обновлении post, см. https://firebase.google.com/docs/functions/database-events

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...