[147] | 1 | # Yukari's Gap
|
---|
[1] | 2 |
|
---|
[147] | 3 | Web content sanitizer proxy as a service, fork of [MortyProxy](https://github.com/asciimoo/morty) with some suggestions from the issue tracker applied, named after [the youkai you shouldn't ever come near](https://en.touhouwiki.net/wiki/Yukari_Yakumo)
|
---|
[81] | 4 |
|
---|
[147] | 5 | Yukari's Gap rewrites web pages to exclude malicious HTML tags and attributes. It also replaces external resource references to prevent third party information leaks.
|
---|
[1] | 6 |
|
---|
[147] | 7 | The main goal of this tool is to provide a result proxy for [searx](https://asciimoo.github.com/searx/), but it can be used as a standalone sanitizer service too.
|
---|
[1] | 8 |
|
---|
[6] | 9 | Features:
|
---|
[1] | 10 |
|
---|
[147] | 11 | * HTML sanitization
|
---|
| 12 | * Rewrites HTML/CSS external references to locals
|
---|
| 13 | * JavaScript blocking
|
---|
| 14 | * No Cookies forwarded
|
---|
| 15 | * No Referrers
|
---|
| 16 | * No Caching/Etag
|
---|
| 17 | * Supports GET/POST forms and IFrames
|
---|
| 18 | * Optional HMAC URL verifier key to prevent service abuse
|
---|
[1] | 19 |
|
---|
| 20 |
|
---|
| 21 | ## Installation and setup
|
---|
[149] | 22 | Requirement: Go version 1.16 or higher (thus making it incompatible with MortyProxy's own requirement, but also to use `go embed`)
|
---|
[1] | 23 |
|
---|
| 24 | ```
|
---|
[149] | 25 | $ go install marisa.chaotic.ninja/yukari/cmd/yukari@latest
|
---|
[142] | 26 | $ "$GOPATH/bin/yukari" --help
|
---|
[1] | 27 | ```
|
---|
| 28 |
|
---|
[138] | 29 | ### Usage
|
---|
[149] | 30 | See `yukari(1)`
|
---|
[138] | 31 |
|
---|
[101] | 32 | ### Environment variables
|
---|
[1] | 33 |
|
---|
[142] | 34 | Yukari can additionally be configured using the following environment variables:
|
---|
| 35 | - `YUKARI_ADDRESS`: Listen address (default to `127.0.0.1:3000`)
|
---|
| 36 | - `YUKARI_KEY`: HMAC url validation key (base64 encoded) to prevent direct URL opening. Leave blank to disable validation. Use `openssl rand -base64 33` to generate.
|
---|
| 37 | - `YUKARI_URL_PARAM`: User-defined requesting string URL parameter name (ie: `/?url=...` or `/?u=...`) (default `yukariurl`)
|
---|
| 38 | - `YUKARI_HASH_PARAM`: User-defined requesting string HASH parameter name (ie: `/?hash=...` or `/?h=...`) (default `yukarihash`)
|
---|
[101] | 39 | - `DEBUG`: Enable/disable proxy and redirection logs (default to `true`). Set to `false` to disable.
|
---|
| 40 |
|
---|
[48] | 41 | ### Test
|
---|
| 42 |
|
---|
| 43 | ```
|
---|
[142] | 44 | $ cd "$GOPATH/src/marisa.chaotic.ninja/yukari"
|
---|
[48] | 45 | $ go test
|
---|
| 46 | ```
|
---|
| 47 |
|
---|
| 48 |
|
---|
| 49 | ### Benchmark
|
---|
| 50 |
|
---|
| 51 | ```
|
---|
[142] | 52 | $ cd "$GOPATH/src/marisa.chaotic.ninja/yukari"
|
---|
[48] | 53 | $ go test -benchmem -bench .
|
---|
| 54 | ```
|
---|
| 55 |
|
---|
| 56 |
|
---|
[1] | 57 | ## Bugs
|
---|
[149] | 58 | Bugs or suggestions? Mail [yukari-dev@chaotic.ninja](mailto:yukari-dev@chaotic.ninja)
|
---|