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