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

Я предполагаю, что это не надежно, но ограничивает варианты использования в определенных ситуациях.
Вы можете использовать такой домен из белого списка в заголовках, связанных с 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, мы можем найти способ выполнять те же задачи из другого (вне браузера) процесса.
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 и в клиенте, отличном от браузера, и подделать запрос, верно? Можете ли вы добавить больше о механизме аутентификации, который вы цитируете в отношении проверки исходного домена?
Я бы спросил вас: какой ответ вы получите от Firebase при использовании cURL для поддельных заголовков с использованием HTTP (не HTTPS)?
Я не пробовал, и я не уверен, как это проверяет подлинность домена на подделку. Мой вопрос касался только возможности подделки или, если нет, возможности защиты от дурака.
Ничего страшного, если есть вариант для https, но не для http. Мы можем использовать https. Сказал, что я пытаюсь понять, как защищена проверка домена.
Спасибо за ответ :) Жду дальнейших сообщений от других пользователей.