ttalvitie / browservice

Browservice: Browse the modern web on historical browsers
MIT License
1.11k stars 32 forks source link

real proxy? #97

Open ghost opened 1 year ago

ghost commented 1 year ago

Hi! Have you considered making browservice into a real http proxy? That way we could use the native url bar in the browser. Most browsers since forever supports http proxies.

ttalvitie commented 1 year ago

Yes, initially I thought about that, but then I observed that a proper immersive browser proxy would require the URL in the native URL bar to be updated whenever the embedded browser is navigated to a different page. This would greatly weaken the security model of Browservice, as it would allow a possibly malicious web page to navigate an insecure old web browser to arbitrary URLs, significantly increasing the attack surface. Even when browsing only on trusted websites and using a modern client browser, implementing this correctly would greatly increase the complexity of Browservice (in addition to the proxy management boilerplate, the implementation would involve e.g. non-URL based client session state tracking that should support multiple windows and work on a variety of old browsers and a seemingly very complicated URL sanitization logic). Therefore, I don't plan on implementing this myself, and even if someone contributed an acceptable implementation of this, I think it should not be a default operating mode due to the security risks.

If proper client URL bar updating is not required, then the problem becomes simpler and could possibly be implemented as a separate proxy service that forwards the requests to Browservice. However, the utility of this would be limited: it would just allow the user to initiate a Browservice browser window by typing the URL of the webpage directly without writing something like http://192.168.56.1:8080/goto/ before it, but after that it would work very similarly to how Browservice currently works.

WunderWungiel commented 1 year ago

@ghost

Try WebOne. It does HTTP proxy job. https://github.com/atauenis/webone