![Como criar uma VPN Javascript P2P como a Hola VPN faz?](https://rvso.com/image/1558022/Como%20criar%20uma%20VPN%20Javascript%20P2P%20como%20a%20Hola%20VPN%20faz%3F.png)
Tenho tentado construir uma VPN P2P que funcione inteiramente no navegador, principalmente Javascript, mas principalmente um complemento como os do Firefox e do Chrome. Basicamente, a mesma coisa que Hola VPN.
O que me deixa perplexo é que xmlhttprequest's
não se presta a solicitações entre domínios sem autorização explícita do servidor/site de acesso e é a única maneira de redirecionar/proxy uma solicitação de outro ponto. Como o Hola VPN possivelmente contorna isso? Alguém está ciente?
Veja bem, não estou tentando abrir uma pergunta aberta, mas há apenas uma ou duas respostas para esse dilema, mas deixe-me saber se devo editar para torná-lo menos, se você achar que sim.
Responder1
Não tenho certeza do que o Hola faz, mas acho que provavelmente a melhor opção é adicionar seu domínio VPN às permissões de extensão e usar chrome.webRequest e xmlhttprequest para enviar sua solicitação para lá.
Isso permite que você envie uma solicitação, mas o outro lado da VPN P2P não seria possível da mesma forma devido a problemas de CORS e permissões. Os aplicativos do Chrome costumavam oferecer suporte a soquetes brutos, mas foram descontinuados.
Com as APIs do navegador atuais, você terá que criar um aplicativo nativo. Você pode manter uma extensão de navegador que se comunica por meio de mensagens nativas ou simplesmente abandonar completamente a extensão e ter as duas partes juntas no aplicativo (foi o que fizemos para nossa VPN P2P, PenguinProxy).