
Я пытался создать P2P VPN, который работает полностью в браузере, в основном Javascript, но в основном это аддон, такой как в Firefox и Chrome. По сути, то же самое, что и Hola VPN.
Что меня сбивает с толку, так это то, что xmlhttprequest's
они не поддаются кросс-доменным запросам без явного разрешения сервера/сайта, на который осуществляется доступ, и это единственный способ, которым я мог бы предположительно перенаправить/проксировать запрос от другого однорангового сервера. Как Hola VPN может обойти это? Кто-нибудь знает?
Заметьте, я не пытаюсь задать открытый вопрос, но на эту дилемму есть только один или два ответа, но дайте мне знать, если мне следует отредактировать текст, чтобы сделать его менее острым, если вы так считаете.
решение1
Я не уверен, что делает Hola, но, по-моему, лучшим вариантом будет добавить ваш домен VPN в разрешения расширения, а затем использовать chrome.webRequest и xmlhttprequest, чтобы отправить туда ваш запрос.
Это позволяет вам отправлять запрос, но другая сторона P2P VPN не будет работать таким же образом из-за проблем с CORS и разрешениями. Приложения Chrome раньше поддерживали сырые сокеты, но теперь они устарели.
С текущим API браузера вам придется сделать нативное приложение. Вы можете сохранить расширение браузера, которое взаимодействует через нативные сообщения, или просто полностью отказаться от расширения и иметь обе части вместе в приложении (это то, что мы сделали для нашего P2P VPN, PenguinProxy).