# etherdream/jsproxy

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/etherdream-jsproxy).**

9,339 stars · 3,536 forks · Shell · MIT

## Links

- GitHub: https://github.com/EtherDream/jsproxy
- awesome-repositories: https://awesome-repositories.com/repository/etherdream-jsproxy.md

## Description

jsproxy is a web traffic proxy designed to route requests through a ServiceWorker to bypass network restrictions while minimizing server-side processing overhead. It focuses on browser API virtualization, rewriting URL-related functions and properties so that proxied pages behave as if they are running on their original domains.

The project utilizes a decoupled architecture that separates the static user interface from the data forwarding backend, allowing for deployment across multiple providers. It includes weight-based load balancing to distribute traffic across multiple proxy nodes and implements CORS-aware routing to connect directly to domains that permit all origins.

The system covers security and performance through the blocking of reserved internal IP ranges to prevent server-side request forgery and the redirection of large static assets to local CDNs. It further ensures page rendering consistency by intercepting DOM element creation to rewrite absolute URLs and synchronizing session cookies with local storage.

## Tags

### Networking & Communication

- [Traffic Proxying](https://awesome-repositories.com/f/networking-communication/traffic-proxying.md) — Intercepts and routes web traffic through a ServiceWorker-based proxy to bypass network restrictions.
- [CORS Proxies](https://awesome-repositories.com/f/networking-communication/cors-proxies.md) — Routes traffic through a proxy to bypass cross-origin restrictions for blocked sites.
- [Geographic Restriction Bypasses](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-infrastructure-configuration/network-management/proxy-tunneling-clients/geographic-restriction-bypasses.md) — Bypasses geographic and network content restrictions by routing traffic through a ServiceWorker-based proxy. ([source](https://github.com/etherdream/jsproxy#readme))
- [HTTP Request Interceptors](https://awesome-repositories.com/f/networking-communication/traffic-interception/http-request-interceptors.md) — Utilizes HTTP request interceptors via a ServiceWorker to capture and reroute outgoing web traffic. ([source](https://github.com/EtherDream/jsproxy/blob/master/docs/blogs/js-hook.md))
- [Weighted Load Balancing](https://awesome-repositories.com/f/networking-communication/load-balancers/weighted-load-balancing.md) — Distributes traffic across multiple proxy backend nodes using configurable weights to manage server load.

### Software Engineering & Architecture

- [Request Interception Middleware](https://awesome-repositories.com/f/software-engineering-architecture/request-interception-middleware.md) — Captures outgoing HTTP requests via a ServiceWorker to reroute traffic through a proxy server.
- [Backend-Frontend Decoupling](https://awesome-repositories.com/f/software-engineering-architecture/backend-frontend-decoupling.md) — Implements an architectural split between the static user interface and the data forwarding backend for flexible deployment.

### Part of an Awesome List

- [Web API Virtualization](https://awesome-repositories.com/f/awesome-lists/devtools/rest-and-api/virtual-api-wrappers/web-api-virtualization.md) — Virtualizes URL-related browser APIs so proxied pages behave as if running on their original domain. ([source](https://github.com/etherdream/jsproxy#readme))

### Programming Languages & Runtimes

- [Browser API Overrides](https://awesome-repositories.com/f/programming-languages-runtimes/module-monkey-patching/browser-api-overrides.md) — Overrides native browser APIs to rewrite URLs and prevent proxy detection by target websites.

### User Interface & Experience

- [DOM Element Creation Overrides](https://awesome-repositories.com/f/user-interface-experience/styling-theming-systems/content-styling/component-styling-tools/component-styling/element-tag-overrides/element-tag-overrides/dom-element-creation-overrides.md) — Overrides native browser methods for creating DOM elements to rewrite absolute URLs into proxy paths. ([source](https://github.com/EtherDream/jsproxy/blob/master/docs/blogs/js-hook.md))

### Web Development

- [Client-Side URL Rewriters](https://awesome-repositories.com/f/web-development/url-rewrite-rules/client-side-url-rewriters.md) — Intercepts HTML element creation to transform absolute URLs into proxy-compatible paths for correct page rendering.
- [DOM URL Transformations](https://awesome-repositories.com/f/web-development/url-rewrite-rules/client-side-url-rewriters/dom-url-transformations.md) — Transforms absolute URLs during DOM element creation to ensure proxied pages render correctly.
- [Browser API Virtualization](https://awesome-repositories.com/f/web-development/virtual-browser-globals/browser-api-virtualization.md) — Virtualizes URL-related browser APIs to ensure proxied pages behave as if they are running on their original domains.
- [Static Asset Redirects](https://awesome-repositories.com/f/web-development/page-speed-optimizations/static-asset-redirects.md) — Optimizes page loading by redirecting requests for large static assets to local CDNs.

### DevOps & Infrastructure

- [Decoupled Frontend and Backend Deployments](https://awesome-repositories.com/f/devops-infrastructure/decoupled-frontend-and-backend-deployments.md) — Hosts the user interface on separate third-party providers to reduce the load on the main proxy server. ([source](https://github.com/etherdream/jsproxy#readme))
- [Proxy Node Load Balancing](https://awesome-repositories.com/f/devops-infrastructure/traffic-load-balancers/proxy-node-load-balancing.md) — Distributes network traffic across multiple remote proxy nodes using configurable weights to optimize availability. ([source](https://github.com/EtherDream/jsproxy/blob/master/changelogs/v0.1.0.md))

### Security & Cryptography

- [Internal Network Protections](https://awesome-repositories.com/f/security-cryptography/access-restrictions/internal-network-protections.md) — Prevents the proxy from accessing private IP addresses and loopback interfaces to mitigate SSRF risks. ([source](https://github.com/etherdream/jsproxy#readme))
- [SSRF Protections](https://awesome-repositories.com/f/security-cryptography/secure-proxying/ssrf-protections.md) — Prevents server-side request forgery by blocking access to reserved internal IP ranges.
- [SSRF Protections](https://awesome-repositories.com/f/security-cryptography/ssrf-protections.md) — Blocks requests to reserved internal IP ranges to prevent server-side request forgery attacks.
