![Hola VPN のような P2P Javascript VPN を作成するにはどうすればよいでしょうか?](https://rvso.com/image/1558022/Hola%20VPN%20%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%20P2P%20Javascript%20VPN%20%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F.png)
私は、主に JavaScript ですが、Firefox や Chrome にあるようなアドオンがほとんどである、完全にブラウザ内で動作する P2P VPN を構築しようとしています。基本的には Hola VPN と同じものです。
私を困惑させているのは、xmlhttprequest's
アクセスしているサーバー/Web サイトによる明示的な承認がなければ、クロスドメイン リクエストには対応していないため、別のピアからのリクエストをリダイレクト/プロキシできる唯一の方法であるということです。Hola VPN はどのようにしてこれを回避できるのでしょうか? 誰か知っていますか?
念のため言っておきますが、私はオープンエンドの質問をしようとしているわけではありません。しかし、このジレンマには答えが 1 つまたは 2 つしかありません。しかし、そう思われる場合は、編集して答えを減らす必要があるかどうかお知らせください。
答え1
Hola が何をするのかはわかりませんが、おそらく最善の選択肢は、拡張機能の権限に VPN ドメインを追加し、chrome.webRequest と xmlhttprequest を使用してそこにリクエストを送信することだと思います。
これにより、リクエストを送信できますが、CORS と権限の問題により、P2P VPN の反対側では同じ方法では実行できません。Chrome アプリは以前は raw ソケットをサポートしていましたが、非推奨になりました。
現在のブラウザ API では、ネイティブ アプリを作成する必要があります。ネイティブ メッセージングを介して通信するブラウザ拡張機能を維持することも、拡張機能を完全に削除して両方の部分をアプリにまとめることもできます (これは、P2P VPN である PenguinProxy で行ったことです)。