Правильный подход к защите Firestore / Firebase от спама - PullRequest
0 голосов
/ 03 марта 2020

В настоящее время я разрабатываю сайт с помощью Firestore. Проект включает в себя различные категории, где каждая категория содержит несколько продуктов в качестве документов.

На данный момент я планирую, когда и где я хочу получить продукты и их детали. На мой взгляд, наилучшим подходом является получение соответствующих данных, как только пользователь выбирает категорию. - Допустим, у меня есть 10 продуктов в этой категории, в результате чего 10 документов извлекаются (насколько я знаю).

Что мне интересно, как я могу защитить свою базу данных от спама? Допустим, пользователь остается на странице категории и перезагружается 100 раз - это будет означать, что будет получено 100 * 10 документов. Поскольку каждый извлеченный документ в итоге стоит денег, это может привести к огромному счету.

Как я могу предотвратить это? Есть ли способ сделать это или я должен выбрать совершенно другой подход (база данных Firebase Realtime?)?

1 Ответ

2 голосов
/ 04 марта 2020

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

Если вам нужно контролировать доступ к чтению в вашей базе данных, единственный вариант - отключить прямой доступ из клиентского приложения (больше не использовать предоставленный Firebase SDK) и требуют, чтобы все запросы go осуществлялись через конечные точки API, которые вы контролируете на бэкэнде. Ваш бэкэнд может затем определить, разрешено ли клиенту читать данные, запрошенные через конечную точку.

Такова природа облачных служб. Каждый раз, когда вы открываете сервис для потребления напрямую из inte rnet, всегда есть вероятность злоупотребления. Google имеет некоторые общие средства предотвращения злоупотреблений в своих облачных сервисах, но если вы подозреваете, что что-то определено c со службами Firebase, вы должны сообщить о своих выводах в службу поддержки Firebase напрямую .

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