¿Cómo se puede crear una VPN Javascript P2P como lo hace Hola VPN?

¿Cómo se puede crear una VPN Javascript P2P como lo hace Hola VPN?

He estado intentando crear una VPN P2P que funcione completamente en el navegador, principalmente Javascript, pero principalmente un complemento como los de Firefox y Chrome. Básicamente lo mismo que Hola VPN.

Lo que me desconcierta es que xmlhttprequest'sno se prestan a solicitudes entre dominios sin la autorización explícita del servidor/sitio web que accede y es la única forma en la que posiblemente podría redirigir/representar una solicitud de otro par. ¿Cómo es posible que Hola VPN evite esto? ¿Alguien está al tanto?

Tenga en cuenta que no estoy tratando de abrir una pregunta abierta, pero solo hay una o dos respuestas a este dilema, pero avíseme si debería editarlo para que no lo sea tanto si así lo cree.

Respuesta1

No estoy seguro de qué hace Hola, pero creo que probablemente la mejor opción es agregar su dominio VPN a los permisos de extensión y luego usar chrome.webRequest y xmlhttprequest para enviar su solicitud allí.

Esto le permite enviar una solicitud, pero el otro lado de la VPN P2P no sería factible de la misma manera debido a problemas de permisos y CORS. Las aplicaciones de Chrome solían admitir sockets sin formato, pero han quedado obsoletas.

Con las API del navegador actuales, tendrás que crear una aplicación nativa. Podrías mantener una extensión de navegador que se comunique a través de mensajería nativa, o simplemente deshacerte de la extensión por completo y tener ambas partes juntas en la aplicación (eso es lo que hicimos para nuestra VPN P2P, PenguinProxy).

información relacionada