https://github.com/fabiosantoscode/powproxy
https://github.com/fabiosantoscode/powproxy
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/fabiosantoscode/powproxy
- Owner: fabiosantoscode
- Created: 2022-03-17T18:41:02.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-08-01T23:05:53.000Z (over 3 years ago)
- Last Synced: 2025-03-25T04:27:19.922Z (10 months ago)
- Language: Rust
- Size: 20.5 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# powproxy
Experimental reverse proxy that demands proof-of-work (in the form of an HTML file with a script tag that computes hashes) before it lets a request through.
The purpose is to deter DOS attacks by making them computationally expensive.
## How to run
- Start your server on localhost:8080. Requests that pass the challenge will be proxied there.
- Start `cargo run`, which will bind to localhost:3000
- Visit localhost:3000. The challenge page is blank but after a second or two, the challenge is solved by your browser and you can go through.
## Roadmap
- Only demand proof-of-work if enough requests per second are coming in
- Dynamically adjust difficulty according to how many requests did go through
- Research if it's possible to cheaply rate-limit requests after they're through the proxy
- Actually compute something useful