База данных Firebase - в правилах счетчик страниц требует 'write = true'? - PullRequest
1 голос
/ 14 января 2020

Практически каждый раз, когда человек нажимает на мой веб-сайт, он добавляет его к счетчику в моей базе данных в реальном времени. Однако, если я хочу добавить это в свою базу данных, он говорит, что запись должна равняться истине. То же самое относится и к извлечению данных, для него требуется, чтобы чтение было равно true.

Теперь, если запись была равна true, не сможет ли кто-нибудь, кто заходит на сайт, изменить мою личную базу данных? Кроме того, если бы значение read было равно true, не сможет ли кто-либо, зашедший на сайт, прочитать мою личную базу данных?

Как я смогу добавить счетчик в свою базу данных конфиденциально, не позволяя другим изменять или просматривать моя база данных?

1 Ответ

1 голос
/ 14 января 2020

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

Если вам нужно Для 100% защиты от вредоносных клиентов вам потребуется реализовать логи записи c в бэкэнде, которым вы управляете. Бэкэнд может использовать Firebase Admin SDK для изменения счетчика. Поскольку SDK всегда обходит правила безопасности, пользователю может быть отказано в доступе на запись от клиента, в то время как ваш бэкэнд работает как обычно. Ваш клиент должен будет вызывать бэкэнд, а не писать базу данных напрямую, и ваш бэкэнд также может проверить, должен ли пользователь иметь возможность увеличивать значение. Тем не менее, ваша конечная точка API все еще может быть использована конечным пользователем, поэтому вам, возможно, придется написать код для ее защиты.

...