O JavaScript pode alterar o proxy do seu navegador?
Distinga o código comum de uma página web de uma extensão autorizada que pode configurar o proxy.
Um script executado numa página web não tem nenhuma definição geral que altere o proxy de saída do navegador. Uma extensão do navegador pode ter permissões adicionais, mas funciona num modelo de segurança e configuração diferente.
Esta distinção perde-se em respostas antigas de fóruns. O código que usa partes internas privilegiadas do Firefox, módulos de extensão antigos ou SDK de add-on abandonados nunca foi uma API comum de página web. Colar esse fragmento numa página não concede esses privilégios.
Use a API de extensões do navegador
Uma extensão do Firefox pode usar a API proxy.settings documentada com as permissões necessárias. O Chrome expõe a sua própria API de extensões para o proxy. Os modelos de configuração são diferentes; verifique os requisitos do manifesto e as definições suportadas no navegador que pretende.
Uma extensão também deve ter em conta políticas ou outras extensões que controlam a mesma definição. Uma chamada de API bem-sucedida não é motivo para presumir que cada destino segue agora o percurso pretendido. Inspecione a configuração resultante e preserve a capacidade do utilizador de a restaurar.
Alterar o URL de um pedido altera o destino
Uma página web pode chamar um servidor de aplicação que reencaminha um pedido em seu nome, segundo as regras web do navegador. Nesse modelo o navegador liga-se a esse servidor de aplicação. Não instalou um proxy geral nem alterou o percurso utilizado por separadores não relacionados.
Do mesmo modo, enviar um cabeçalho com outro endereço IP não altera o endereço de origem da ligação. Um destino pode interpretar metadados de reencaminhamento de confiança segundo a sua própria política, mas o caminho de rede é um facto separado.
Se o seu objetivo é um proxy que muda o IP para navegar, escolha uma entrada adequada da lista de proxies gratuitos e configure um proxy de navegador suportado ou uma extensão autorizada. Se o objetivo for o pedido remoto de uma aplicação web, conceba essa funcionalidade em torno dos seus limites reais de servidor e navegador.