Как прокси все XMLHttpRequest в веб-браузере? - PullRequest
0 голосов
/ 26 сентября 2019

Я использую Google Firebase, и, к сожалению, Google Firebase наложил санкции на некоторые страны, что означает, что они должны использовать прокси (или VPN) для доступа к веб-сайту.

Можно ли каким-либо образом установитьнастройки прокси для каждого запроса клиента , чтобы они могли свободно обращаться к Firebase без VPN?

Я знаю, что есть варианты для Node.js, но я ищу решение для веб-браузера.У Firefox есть настройки прокси , а в Google Chrome также есть некоторые опции для расширений разработчиков, но мне нужно решение, которое работает только на веб-странице, и это означает, что когда пользователь приходит кмой сайт, ему / ей не нужно устанавливать прокси для доступа к Firebase.

Пример: когда пользователь заходит на мой сайт из (например) Сирии или Судана, ему не нужно устанавливать VPN дляих браузер, потому что я сделал некоторые настройки прокси на моем сайте

1 Ответ

1 голос
/ 26 сентября 2019

Краткий ответ: Вы не можете сделать это только для веб-сайта.

Более длинный ответ / объяснение:

Я знаюЕсть варианты для Node.js,

Хорошо ... это может работать.Разверните свой собственный сервер Node.js на Heroku и т. П., Который передает запросы в Firebase.

, но я ищу решение для веб-браузера.В Firefox есть настройки прокси-сервера, а в Google Chrome также есть несколько опций для разработчиков расширений, но

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

Мне нужно решение, которое работает только на веб-странице,

Нет.Невозможно.Серверы Google не будут отвечать на любые запросы из санкционированной страны.Если запрос поступает из запрещенной страны, серверы Firebase не будут отвечать вашим веб-сайтом - вместо этого они ответят 403. Firebase не будет отправлять веб-сайт.Ваш сайт не будет отправлен клиенту.Неважно, что содержит ваш сайт, он никогда не будет отправлен этим конечным пользователям.

Даже если вы размещаете сайт в другом месте и просто используете базу данных Firebase, он все равно не будетработа - по тем же причинам.Когда серверы Firebase получают запрос от браузера, работающего в санкционированной стране, они отвечают 403.

Тогда возникает вопрос: как сделать так, чтобы запрос выглядел из-за пределов санкционированной страны, только с веб-сайта??

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

Если вы хотите обрабатывать все для своих пользователей, без необходимости использования VPN ( рабочий стол или браузер ), ваш единственный выбор - отправказапрос к другому серверу, не принадлежащему Google (, например, серверу Node.js, который вы размещаете на Heroku и т. п. ), который затем отправляет запрос в Firebase от их имени, получает ответ и отвечает обратноклиенту.Таким образом, для серверов Firebase создается впечатление, что запрос поступает из местоположения X *.

* X: Где бы ни работал сервер Heroku.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...