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

Это различие теряется в старых ответах на форумах. Код, использующий привилегированные внутренние части Firefox, старые модули расширений или заброшенные add-on SDK, никогда не был обычным API веб-страницы. Вставка такого фрагмента на страницу не даёт этих привилегий.

Используйте API расширений браузера

Расширение Firefox может использовать документированный API proxy.settings с необходимыми разрешениями. Chrome предоставляет собственный API расширений для прокси. Их модели конфигурации различаются; проверьте требования манифеста и поддерживаемые настройки для нужного вам браузера.

Расширение также должно учитывать политики или другие расширения, управляющие той же настройкой. Успешный вызов API не даёт оснований считать, что каждый адресат теперь идёт по задуманному маршруту. Проверьте получившуюся конфигурацию и сохраните возможность пользователя её восстановить.

Изменение URL запроса меняет адресат

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

Точно так же отправка заголовка с другим IP-адресом не меняет адрес источника соединения. Адресат может интерпретировать доверенные метаданные пересылки по собственной политике, но сетевой путь — отдельный факт.

Если ваша цель — прокси, меняющий IP для просмотра, выберите подходящую запись из списка бесплатных прокси и настройте поддерживаемый прокси браузера или авторизованное расширение. Если цель — удалённый запрос одного веб-приложения, проектируйте эту функцию с учётом его реальных границ сервера и браузера.

Похожие статьи