Как предотвратить несанкционированный доступ к моей базе данных Firebase?

Как я могу запретить другим пользователям доступ к моей базе данных Firebase через мой URL-адрес Firebase? Что я должен сделать, чтобы защитить его только от моего домена?

2 ответа

Решение

Прежде всего, поймите, что вы не можете защитить любой URL в Интернете в соответствии с доменом происхождения - злоумышленники могут просто лгать. Защита исходных доменов полезна только для предотвращения атак с использованием подмены сайтов (когда злонамеренный источник притворяется вашим сайтом и обманывает ваших пользователей при входе в систему от их имени).

Хорошая новость заключается в том, что пользователям с самого начала запрещено проверять подлинность на неавторизованных доменах. Вы можете установить свои авторизованные домены в Forge:

  • введите ваш URL Firebase в браузер (например, https://instance.firebaseio.com/)
  • авторизоваться
  • нажмите на вкладку Auth
  • добавьте свой домен в список происхождения авторизованных запросов
  • выберите "провайдера", которого хотите использовать, и настройте его соответствующим образом

Теперь, чтобы защитить свои данные, вы перейдете на вкладку "Безопасность" и добавите правила безопасности. Хорошей отправной точкой является следующее:

{
   "rules": {
       // only authenticated users can read or write to my Firebase
       ".read": "auth !== null",
       ".write": "auth !== null"
   }
}

Правила безопасности - большая тема. Вы захотите набрать скорость, прочитав обзор и посмотрев это видео

  1. Настройте правила безопасности, источник для изучения: https://firebase.google.com/docs/rules

  2. Используйте эмуляторы (начинающим программистам будет сложно увидеть ключи), источник: https://firebase.google.com/docs/rules/emulator-setup .

  3. Облачные функции (они скроют имена коллекций и документов), https://firebase.google.com/docs/functions

  4. Ограничьте ключи API для определенных веб-сайтов (из-за этого люди не смогут получить доступ к вашему веб-сайту / приложению извне)

если кто-то знает еще методы, расскажите, никто не может быть идеальным.

Другие вопросы по тегам