Skip to content

An experimental web proxy utilizing sandboxed iframes and no service worker.

License

Notifications You must be signed in to change notification settings

ading2210/sandstone

Repository files navigation

Sandstone

Sandstone is an experimental web proxy utilizing sandboxed iframes and no service worker.

Traditional web proxies like Ultraviolet require you to visit a domain that is unblocked, leading to a whack-a-mole situation of having these domains be blocked and trying to find new ones. Sandstone on the other hand is able to run from within a local HTML file, so it can avoid being blocked in many situations. Additionally, traditional web proxies do not sandbox the proxied pages, so any site can take control of the proxy as a whole and steal credentials. Sandstone avoids this by putting the proxied pages inside a sandboxed iframe, so they absolutely cannot access the parent page.

Try it here: https://sandstone.pages.dev/

Features

  • Every proxied page runs in a sandboxed iframe
  • Can be used from an HTML file or as a data URL
  • Does not use service workers
  • Uses libcurl.js and Wisp for end-to-end encryption

Site Support

Status

This is at a very early stage of development and lacks support for most web APIs.

Working Features

  • Fetch API
  • Basic javascript
  • Local storage
  • Web workers
  • XMLHttpRequest
  • Media elements such as <img>
  • CSS rewriting
  • Anchor tags
  • HTML redirects
  • HTML forms

Notable Unimplemented Features

  • Cookies
  • ES6 modules
  • HTTP request caching

Usage

Building

  1. Clone this repository and cd into it.
  2. Run npm i to install the dependencies.
  3. Run npm run build:prod to bundle the client JS. You may also use npm run dev.

Running the Example Frontend

  1. Cd into the example subdirectory
  2. Run npm i to install the server dependencies
  3. Run npm run build:prod to bundle the frontend JS.
  4. Run npm run start which will start the web server

License

ading2210/sandstone - A web proxy using sandboxed iframes 
Copyright (C) 2025 ading2210

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

About

An experimental web proxy utilizing sandboxed iframes and no service worker.

Resources

License

Stars

Watchers

Forks