Fingerprint battery
Canvas, audio, WebGL, and font signals — each one consistent with a real desktop browser.
What's measured on this page
- WebGL renderer — software rasterisers (SwiftShader, Mesa OffScreen, llvmpipe) are headless tells.
- Canvas fingerprint — hash a rendered string + emoji; compare to a denylist harvested from automated runs.
- AudioContext fingerprint — hash the output of an OscillatorNode → DynamicsCompressor → destination chain.
- Font set — the OS implied by the UA should ship a known set of fonts; mismatched set = suspect.