Чи може JavaScript змінити проксі вашого браузера?
Відрізняйте звичайний код вебсторінки від авторизованого розширення браузера, яке може налаштувати проксі.
Скрипт, що виконується на вебсторінці, не має загального налаштування, яке змінювало б вихідний проксі браузера. Розширення браузера може мати додаткові дозволи, але працює в іншій моделі безпеки та конфігурації.
Ця відмінність губиться в старих відповідях на форумах. Код, який використовує привілейовані внутрішні частини Firefox, старі модулі розширень або занедбані add-on SDK, ніколи не був звичайним API вебсторінки. Вставлення такого фрагмента на сторінку не дає цих привілеїв.
Використовуйте API розширень браузера
Розширення Firefox може використовувати документований API proxy.settings з потрібними дозволами. Chrome пропонує власний API розширень для проксі. Їхні моделі конфігурації різняться; перевірте вимоги маніфесту та підтримувані налаштування для потрібного браузера.
Розширення також має враховувати політики або інші розширення, що керують тим самим налаштуванням. Успішний виклик API не є підставою вважати, що кожен адресат тепер іде задуманим маршрутом. Перегляньте отриману конфігурацію та збережіть можливість користувача її відновити.
Зміна URL запиту змінює адресат
Вебсторінка може викликати сервер застосунку, який пересилає запит від її імені, згідно з вебправилами браузера. У такій схемі браузер з'єднується з цим сервером. Він не встановив загальний проксі браузера й не змінив маршрут не пов'язаних вкладок.
Так само надсилання заголовка з іншою IP-адресою не змінює адресу джерела з'єднання. Адресат може тлумачити довірені метадані пересилання за власною політикою, але мережевий шлях — окремий факт.
Якщо ваша мета — проксі, що змінює IP для перегляду, виберіть відповідний запис зі списку безкоштовних проксі і налаштуйте підтримуваний проксі браузера або авторизоване розширення. Якщо мета — віддалений запит одного вебзастосунку, проєктуйте цю функцію з огляду на його реальні межі сервера й браузера.