1 | # Yukari's Gap
|
---|
2 |
|
---|
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)
|
---|
4 |
|
---|
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.
|
---|
6 |
|
---|
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.
|
---|
8 |
|
---|
9 | Features:
|
---|
10 |
|
---|
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
|
---|
19 |
|
---|
20 |
|
---|
21 | ## Installation and setup
|
---|
22 | Requirement: Go version 1.16 or higher (thus making it incompatible with MortyProxy's own requirement, but also to use `go embed`)
|
---|
23 |
|
---|
24 | ```
|
---|
25 | $ go install marisa.chaotic.ninja/yukari/cmd/yukari@latest
|
---|
26 | $ "$GOPATH/bin/yukari" --help
|
---|
27 | ```
|
---|
28 |
|
---|
29 | ### Usage
|
---|
30 | See `yukari(1)`
|
---|
31 |
|
---|
32 | ### Environment variables
|
---|
33 |
|
---|
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`)
|
---|
39 | - `DEBUG`: Enable/disable proxy and redirection logs (default to `true`). Set to `false` to disable.
|
---|
40 |
|
---|
41 | ### Test
|
---|
42 |
|
---|
43 | ```
|
---|
44 | $ cd "$GOPATH/src/marisa.chaotic.ninja/yukari"
|
---|
45 | $ go test
|
---|
46 | ```
|
---|
47 |
|
---|
48 |
|
---|
49 | ### Benchmark
|
---|
50 |
|
---|
51 | ```
|
---|
52 | $ cd "$GOPATH/src/marisa.chaotic.ninja/yukari"
|
---|
53 | $ go test -benchmem -bench .
|
---|
54 | ```
|
---|
55 |
|
---|
56 |
|
---|
57 | ## Bugs
|
---|
58 | Bugs or suggestions? Mail [yukari-dev@chaotic.ninja](mailto:yukari-dev@chaotic.ninja)
|
---|