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

Как Белый список доменов Firebase работает за сценой, чтобы сделать его надежным? Чтобы было ясно, я не пытаюсь настроить свой домен в консоли Firebase (что я понимаю, как это сделать), а вместо этого пытаюсь создать аналогичную проверку исходного домена на моей стороне сервера - код API. Какие веб-стандарты использует Firebase, чтобы гарантировать, что только авторизованные домены будут вызывать API, поскольку токен API является общедоступным.

Что, если кто-то использует HTTP-клиент, не являющийся браузером, с подделкой заголовков исходного домена с помощью токена API моего приложения? Я предполагаю, что Firebase подумала бы о таком случае и его покрытии. Пытаюсь понять, насколько это надежно.

Интеграция Angular - Firebase Analytics
Интеграция Angular - Firebase Analytics
Узнайте, как настроить Firebase Analytics и отслеживать поведение пользователей в вашем приложении Angular.
7
0
363
2

Ответы 2

Я предполагаю, что это не надежно, но ограничивает варианты использования в определенных ситуациях.

Вы можете использовать такой домен из белого списка в заголовках, связанных с CORS, это предотвратит определенные действия со стороны современных браузеров.

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

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

Что касается firebase, поскольку довольно сложно использовать firebase без библиотеки, библиотека может просто предоставить текущий URL-адрес на сервер и предотвратить любые действия из не включенных в список доменов. Это ни в коем случае не является надежным.

What if someone uses non-browser HTTP client with source domain headers faked with the API token of my app? I assume Firebase would've thought about such case and its covered.

Думаю, ваше предположение неверно. Клиенты небезопасны, и любой запрос можно подделать. В конце концов, это пакет, который отправляется на сервер, и если вы контролируете отправителя, вы контролируете содержимое пакета.

Если мы отслеживаем соединение между клиентом и Firebase, мы можем найти способ выполнять те же задачи из другого (вне браузера) процесса.

Спасибо за ответ :) Жду дальнейших сообщений от других пользователей.

Anand 12.07.2018 23:48

TLS. Если вы посмотрите документацию IETF Обзор протокола рукопожатия:

When a TLS client and server first start communicating, they agree on a protocol version, select cryptographic algorithms, optionally authenticate each other, and use public-key encryption techniques to generate shared secrets.

Итак, я думаю, что это механизм, используемый для внесения доменов в белый список. Что касается подделки заголовков HTTP, Firebase не принимает HTTP, только HTTPS (TLS).

Разве параметры заголовка не одинаковы для HTP и HTTPS? Мы можем использовать HTTP и в клиенте, отличном от браузера, и подделать запрос, верно? Можете ли вы добавить больше о механизме аутентификации, который вы цитируете в отношении проверки исходного домена?

Anand 13.07.2018 00:41

Я бы спросил вас: какой ответ вы получите от Firebase при использовании cURL для поддельных заголовков с использованием HTTP (не HTTPS)?

Ronnie Royston 13.07.2018 01:27

Я не пробовал, и я не уверен, как это проверяет подлинность домена на подделку. Мой вопрос касался только возможности подделки или, если нет, возможности защиты от дурака.

Anand 13.07.2018 02:59

Ничего страшного, если есть вариант для https, но не для http. Мы можем использовать https. Сказал, что я пытаюсь понять, как защищена проверка домена.

Anand 13.07.2018 03:01

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