2

Моя целевая страница - это скорая страница с призывом к подписанию, который берет имя, адрес электронной почты и т. Д. От пользователя. Пользователь не нуждается в аутентификации для подписки. Он может быть любым случайным человеком, который посещает эту страницу. Я считаю, что правило должно быть «.read»: false, «.write»: true. Но Google предупреждает, что я пишу: true позволит любому писать в базу данных даже людей, которые не используют приложение.База данных реального времени Firebase: Какое правильное правило безопасности для целевой страницы?

Я чувствую, что это естественно, пока я не поставил CAPTCHA или что-то в этом роде. Как решаются такие проблемы (предотвращение спама в подписке или скоро появляющиеся страницы, имеющие формы)?

ответ

2

Что вы можете сделать, чтобы предотвратить злоупотребление только с использованием правил безопасности (это не предотвратит все виды спама, поскольку вы должны пойти в капчу и другие решения), вы можете настроить аутентификацию по электронной почте на Firebase и запросить e- mail подтверждение. Перейдите в раздел «Аутентификация»> «Методы входа»> «Включить электронную почту».

При сохранении электронной почты пользователя и имени пользователя в базе данных вы можете создать «пользовательский» узел в своей базе данных и сохранить его под идентификатором пользователя Firebase, назначенным пользователю.

example of user id assigned by Firebase (0TTUf ... это идентификатор, присвоенный Firebase)

Firebase будет запрашивать пароль, так как вам не нужно пользователям, которые будут подписаны, и вы просто должны держать свою электронную почту и пароль , просто назначьте макет пароля всем пользователям.

Это будет выглядеть следующим образом:

enter image description here

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

Тогда ваши правила будут выглядеть следующим образом:

{ 
    "rules": { 
    ".read": false, 
    ".write": false 
    } 
} 

Ни один пользователь не имеет права чтения или записи в базе данных, как вы управляете сами.

Подводя итог: Запрос имя и адрес электронной почты, назначить пароль, отправить эти данные Firebase в качестве нового пользователя, подписавшего в, за исключением электронной почты и имя в соответствии с /пользователей/$ user_id