Как ограничить изменение данных Firebase?


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

Так что если кто-то берет мой firebase uri (например, https://firebaseinstance.firebaseio.com) тогда развивайте на нем локально.

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

3 56

3 ответа:

спасибо Вам за эту дискуссию. Тем не менее, я хотел бы добавить деталь.

@Frank van Puffelen,

Вы упомянули фишинговую атаку. На самом деле есть способ обеспечить это.

Если вы входите в консоль диспетчера API googleAPIs, у вас есть возможность заблокировать, какой http-реферер ваше приложение будет принимать запрос.

  1. посещение https://console.developers.google.com/apis
  2. перейти к проект опорного пункта
  3. перейти к учетным данным
  4. в разделе ключи API выберите ключ браузера, связанный с вашим проектом firebase (должен иметь тот же ключ, что и ключ API, который вы используете для инициализации вашего приложения firebase.)
  5. в разделе " принимать запросы от этих http-рефереров (веб-сайтов), просто добавьте URL-адрес вашего приложения.

Это должно позволить только белому списку домена использовать ваше приложение.

Это также описано здесь в firebase запуск-контрольный список здесь:https://firebase.google.com/support/guides/launch-checklist

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

еще раз, большое спасибо!

тот факт, что кто-то знает Ваш URL-адрес, не является угрозой безопасности.

например: я без проблем говорю вам, что мой банк размещает свой веб-сайт по адресу bankofamerica.com и это говорит протокол HTTP там. Если вы также не знаете учетные данные, которые я использую для доступа к этому сайту, знание URL-адреса не принесет вам никакой пользы.

чтобы защитить ваши данные, ваша база данных должна быть защищена:

  • правила проверки, которые гарантируют, что все данные придерживаются структуры, которая ты хочешь
  • правила авторизации, гарантирующие, что каждый бит данных может быть прочитан и изменен только авторизованными пользователями

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

с этими правилами безопасности на месте, единственный способ кто-то еще приложение может получить доступ к данным в базе данных, если они копируют функциональность вашего приложения, есть пользователи войти в систему их приложение вместо вашего и вход / чтение / запись в вашу базу данных; по сути, фишинговая атака. В этом случае в базе данных нет проблем с безопасностью, хотя, вероятно, пришло время привлечь некоторые органы власти.

Что касается белого списка Auth для мобильных приложений, где доменное имя не применимо, Firebase have

1) SHA1 fingerprint на приложения для Android и

2) App Store ID and Bundle ID and Team ID (if necessary) для iOS apps

который вам нужно будет настроить в консоли Firebase.

С этой защитой, так как проверка не только если у кого-то есть действительный ключ API, Auth домен и т.д., но и, это происходит от наших авторизованных приложений и domain name/HTTP referrer in case of Web.

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

перед больше информации,https://firebase.google.com/support/guides/launch-checklist