我一直在嘗試建立一個完全在瀏覽器中運行的 P2P VPN,主要是 Javascript,但主要是一個插件,例如 Firefox 和 Chrome 中的插件。基本上與 Hola VPN 相同。
令我困惑的是,因為xmlhttprequest's
在沒有訪問伺服器/網站明確授權的情況下,不要讓自己接受跨域請求,這是我可以想像的重定向/代理來自另一個對等點的請求的唯一方法。 Hola VPN 如何規避這個問題?有人知道嗎?
請注意,我並不是想提出一個開放式問題,但這個困境只有一兩個答案,但如果你這麼認為,請告訴我是否應該編輯以減少這種情況。
答案1
我不確定 Hola 做了什麼,但我認為最好的選擇可能是將您的 VPN 網域添加到擴充功能權限中,然後使用 chrome.webRequest 和 xmlhttprequest 在那裡發送您的請求。
這允許您發送請求,但由於 CORS 和權限問題,P2P VPN 的另一端將無法以相同的方式執行。 Chrome 應用程式曾經支援原始套接字,但已被棄用。
使用目前的瀏覽器 API,您將製作一個本機應用程式。您可以保留透過本機訊息傳遞進行通訊的瀏覽器擴展,或者完全放棄該擴展並將兩個部分放在應用程式中(這就是我們為 P2P VPN、PenguinProxy 所做的)。