Browser fingerprinting
Building an identifier from browser and device characteristics exposed to JavaScript.
Browser fingerprinting assembles a large number of small, individually unremarkable properties into an identifier that is often unique. It runs in JavaScript once the page loads.
#Properties commonly collected
- Screen dimensions, colour depth, device pixel ratio.
- Installed fonts, detected by measuring rendered text.
- Canvas and WebGL output, which vary with GPU and driver.
- Audio stack behaviour.
- Timezone, language, platform, hardware concurrency.
- Available plugins and supported media types.
#Why automation is easy to spot
Headless browsers historically exposed direct tells such as navigator.webdriver. Those are patchable, but internal consistency is much harder to fake: a fingerprint claiming macOS with Linux font metrics, or a GPU renderer string that no consumer machine reports, stands out precisely because real devices are consistent.
#The practical implication
Changing your address does nothing here. A pristine residential exit combined with an implausible fingerprint is still identifiable — and the combination can look worse than either problem alone.