Inconsistency analysis
GET /api/fingerprint/liesLies detection fingerprinting identifies inconsistencies and contradictions in browser fingerprint data that indicate spoofing, privacy tools, or automation. This advanced meta-analysis technique cross-references hundreds of browser properties to detect when reported values don't match expected relationships. The fundamental principle is that authentic browsers exhibit consistent correlations between properties: if navigator.userAgent claims "Windows", then navigator.platform should be "Win32", navigator.appVersion should contain "Windows", and OS-specific APIs like navigator.msSaveBlob should exist. Privacy tools and browser spoofers often modify individual properties without updating all related properties, creating detectable inconsistencies. The technique performs extensive cross-validation: checking if navigator.languages matches Accept-Language headers, verifying Intl.DateTimeFormat().resolvedOptions().timeZone aligns with timezone offset, confirming screen dimensions match CSS media queries, validating WebGL vendor/renderer strings correspond to claimed GPU, ensuring audio/canvas fingerprints align with claimed hardware, and detecting when plugins list contradicts navigator.plugins. Advanced checks identify timing anomalies (operations completing too fast or too slow), mathematical impossibilities (screen dimensions larger than maximum supported resolution), and feature mismatches (claiming to be mobile Safari but missing Mobile Safari-specific APIs). Headless browsers (Puppeteer, Playwright) often have characteristic lies: missing or unusual navigator.webdriver, absent chrome.runtime despite claiming to be Chrome, or window.outerWidth/outerHeight being zero. The technique assigns a "trust score" based on detected inconsistencies. Ironically, users attempting to avoid fingerprinting by spoofing browser properties often make themselves more identifiable through the unique pattern of lies their tools create. Privacy browsers like Tor Browser avoid lies by consistently modifying all related properties, but their uniform fingerprint becomes its own identifying characteristic.
Move from this collector to the CreepJS signal index, live checker, API docs, and other high-value fingerprinting explainers.