Как ограничить изменение данных Firebase?
Firebase предоставляет серверную часть базы данных, чтобы разработчики могли сосредоточиться на клиентском коде.
Так что если кто-то берет мой firebase uri (например, https://firebaseinstance.firebaseio.com
) тогда развивайте на нем локально.
тогда они смогут создать другое приложение с моего экземпляра Firebase, зарегистрироваться и аутентифицировать себя, чтобы прочитать все данные моего приложения Firebase?
3 ответа:
спасибо Вам за эту дискуссию. Тем не менее, я хотел бы добавить деталь.
@Frank van Puffelen,
Вы упомянули фишинговую атаку. На самом деле есть способ обеспечить это.
Если вы входите в консоль диспетчера API googleAPIs, у вас есть возможность заблокировать, какой http-реферер ваше приложение будет принимать запрос.
- посещение https://console.developers.google.com/apis
- перейти к проект опорного пункта
- перейти к учетным данным
- в разделе ключи API выберите ключ браузера, связанный с вашим проектом firebase (должен иметь тот же ключ, что и ключ API, который вы используете для инициализации вашего приложения firebase.)
- в разделе " принимать запросы от этих 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