Wie kann man ein P2P-Javascript-VPN erstellen, wie es Hola VPN tut?

385
turkey

Ich habe versucht, ein P2P-VPN aufzubauen, das vollständig im Browser funktioniert, hauptsächlich Javascript, aber meistens ein Addon wie das von Firefox und Chrome. Im Grunde dasselbe wie Hola VPN.

Was mich verblüfft, ist, dass xmlhttprequest'sSie sich nicht für domänenübergreifende Anforderungen ohne explizite Autorisierung durch den zugreifenden Server / die Website eignen. Dies ist die einzige Möglichkeit, eine Anfrage von einem anderen Peer umzuleiten / zu proxy. Wie umgeht Hola VPN dies möglicherweise? Ist sich jemand bewusst?

Ich versuche zwar nicht, eine offene Frage zu eröffnen, aber es gibt nur eine oder zwei Antworten auf dieses Dilemma, aber lassen Sie mich wissen, ob ich es bearbeiten sollte, um es weniger zu machen, wenn Sie dies meinen.

1
Das entfernte Ende Ihrer P2P-Verbindung wäre * auch * eine Instanz Ihres VPN-Dienstes. Eine ordnungsgemäße Einrichtung von CORS ist jedoch kein Problem. Daniel B vor 6 Jahren 0

1 Antwort auf die Frage

0
foresteri

Ich bin nicht sicher, was Hola macht, aber ich denke, es ist wahrscheinlich die beste Option, Ihre VPN-Domäne zu den Erweiterungsberechtigungen hinzuzufügen. Dann verwenden Sie chrome.webRequest und xmlhttprequest, um Ihre Anfrage dort zu senden.

Auf diese Weise können Sie eine Anfrage senden, aber die andere Seite des P2P-VPN ist aufgrund von CORS- und Berechtigungsproblemen nicht auf dieselbe Weise ausführbar. Chrome-Apps, die zur Unterstützung von Raw-Sockets verwendet werden, sind jedoch veraltet.

Mit den aktuellen Browser-APIs erstellen Sie eine native App. Sie können eine Browsererweiterung beibehalten, die über natives Messaging kommuniziert, oder die Erweiterung einfach vollständig aufheben und beide Teile in der App zusammenfassen (das haben wir für unser P2P-VPN, PenguinProxy, getan).