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

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

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

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

3 ответа

Решение

Спасибо вам обоим за эту дискуссию. Однако я хотел добавить детали.

@ Фрэнк ван Пуффелен,

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

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

  1. посетите https://console.developers.google.com/apis
  2. Перейти к вашему проекту Firebase
  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

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

2) App Store ID and Bundle ID and Team ID (if necessary) для ваших приложений iOS

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

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

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

Для получения дополнительной информации https://firebase.google.com/support/guides/launch-checklist

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