Wasm Web Fingerprinting library
Js/Wasm Obfuscated fingerprinting, bot detection & API protection library
state: Pre-alpha
To implement:
Compiling golang to wasm
navigate to ./scripts
and run:
make
Running the script
navigate to ./test
and run:
go run serve.go
You can then open localhost:8080 and the Fingerprint will be logged to console
The fingerprints can be Accessible through calling getFp()
Performance
- Fp takes
~ 15ms
to compute (on apple m2 air
) - Wasm size is
80kb
and 28kb
, before and after compression
Optimizing compiled wasm from golang (both tinygo and gzip are used here)
- using tinygo ~
75%
filesize reduction
tinygo build -o output.wasm -target wasm -no-debug -opt=z input.go
drawback: limited library implementation - solution: implement libraries natively like HexEncode
.
- using gzip ~
50%
filesize reduction
gzip -9 -v -c input.wasm > output.min.wasm
drawbacks: + 21kb
from gzip javascript library
VsCode settings (for gopls):
GOOS=js GOARCH=wasm
- if not, you will get an annoying (fake) error for including
syscall/js
Credits