Site A: test-website-a.pages.dev
A page can move a WebSocket connection into a SharedWorker or
ServiceWorker to bypass Brave Shields network filtering. The same
WebSocket endpoint is opened four ways: directly from the page, from a
dedicated worker, from a shared worker, and from a
service worker. All four target the same same-origin endpoint
.
With default Shields, all four connect (nothing here is on a default filter list). To demonstrate the bypass, add a custom Shields filter that blocks this origin's WebSocket endpoint, then reload:
||test-website-a.pages.dev/shared-worker-shields-bypass/socket
Expected with the filter active: page and dedicated-worker show BLOCKED, while shared-worker and service-worker show OPEN (bypass).
| Initiator | WebSocket result |
|---|---|
| page | testing… |
| dedicated-worker | testing… |
| shared-worker | testing… |
| service-worker | testing… |