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