Seatext library / BotRefund evidence

Empty Font Canvas Detection vs Other Methods: How Privacy Tools Change the Comparison

Empty font canvas detection is more vulnerable to privacy tools than server-side methods like TLS fingerprinting or header analysis. Privacy extensions and browser settings specifically target canvas and font fingerprinting, making client-side signals unreliable...

Built for advertisers who need clear, refund-ready traffic evidence.

Empty font canvas detection is less reliable than server-side methods when privacy tools are active. Browser extensions, hardened browser settings, and anti-fingerprinting features directly target canvas and font enumeration, often returning empty or randomized results that look suspicious even for real users. Server-side signals such as TLS fingerprinting, IP reputation, and HTTP header analysis operate outside the browser sandbox, so privacy tools cannot easily block or spoof them.

Criterion Empty Font Canvas (Client-Side) TLS Fingerprinting (Server-Side) HTTP Header Analysis (Server-Side) Behavioral Biometrics (Client-Side)
Resilience to privacy tools Low — extensions and browser settings routinely block or randomize canvas/font data High — occurs during TLS handshake before any page loads; unaffected by browser extensions High — headers are sent by the client stack; privacy tools rarely strip essential headers Medium — some tools throttle or synthetic events, but micro-tremor and timing are harder to fake consistently
False-positive risk for real users Elevated — privacy-conscious users, corporate laptops, and hardened browsers often trigger empty-canvas signals Low — legitimate clients rarely have anomalous TLS stacks unless using unusual proxies or outdated libraries Low — header order and values are stable for mainstream browsers and devices Medium — accessibility tools, motor impairments, or remote desktop sessions can alter movement patterns
Deployment complexity Requires JavaScript execution on every page; fails if scripts are blocked Passive, no client code needed; works on first packet Passive, no client code needed; available on every request Requires JavaScript and user interaction; needs enough events to build a profile
Signal independence One of many client-side hardware/fingerprint checks; correlates with GPU, audio, and font signals Independent of browser fingerprinting; reflects OS, library, and network stack Independent of rendering engine; reflects client software and configuration Independent of static fingerprint; captures dynamic human behavior
Best fit Supplementing a multi-signal model where corroboration reduces false positives Early filtering, pre-authentication checks, and environments where client script cannot run Layer-7 filtering, WAF rules, and log enrichment without client instrumentation Post-login session validation, fraud detection, and high-value action verification

Takeaway: Empty font canvas is a useful corroborating signal but should never be a primary gate when privacy tools are common. Build detection around server-side signals first, then layer client-side checks like empty font canvas, behavioral biometrics, and hardware fingerprinting as supporting evidence.

Why Privacy Tools Target Canvas and Font Fingerprinting

Privacy-focused browsers and extensions treat canvas and font enumeration as tracking vectors. Firefox's privacy.resistFingerprinting, Brave's farbling, and extensions like CanvasBlocker deliberately return empty or randomized font lists and canvas hashes. This breaks the assumption that an empty font canvas indicates automation — it often indicates a privacy-conscious human.

How Empty Font Canvas Detection Works

The check renders text to an off-screen canvas, measures glyph metrics, and enumerates available fonts via fallback detection. A normal browser reports a consistent set of system fonts and GPU-rendered glyph shapes. Automated browsers running in headless mode, virtual machines, or spoofed profiles often return an empty font list, missing system fonts, or glyph metrics that don't match the claimed device.

BotRefund treats this as one of 106 independent checks. The signal enters an AI prediction model that weighs the complete pattern across browser, network, device, and behavior evidence. A single anomaly is not a bot verdict.

Server-Side Alternatives That Privacy Tools Cannot Easily Block

TLS Fingerprinting (JA3/JA4)

Captures the Client Hello packet during the TLS handshake. The cipher suite list, extension order, and version fields reflect the underlying TLS library (OpenSSL, BoringSSL, NSS) and OS. Since this happens before any HTTP request, browser extensions and privacy settings have no access to modify it.

HTTP Header Analysis

Examines header order, presence of specific fields (e.g., Sec-CH-UA, Accept-Language), and consistency between headers and claimed User-Agent. Privacy tools rarely strip standard headers because doing so breaks site functionality.

IP Reputation and Network Context

Checks ASN, hosting provider, proxy/VPN exit nodes, and geolocation consistency. This is entirely server-side and invisible to the client.

Client-Side Signals That Complement Empty Font Canvas

  • Hardware & GPU fingerprinting: WebGL renderer, vendor, and parameter values that are difficult to spoof consistently across all APIs.
  • Audio context fingerprinting: Oscillator and dynamics compressor behavior varies by hardware and driver stack.
  • Behavioral biometrics: Mouse tremor, click timing, scroll variance — hard to synthesize at scale without detection.
  • Monitor sync anomaly: Detects mismatch between reported refresh rate and actual frame timing.

Each of these shares the same limitation: they run in the browser and can be blocked or spoofed by determined privacy tools. Their value comes from cross-checking — when multiple independent client signals agree, confidence rises.

Decision Framework: Choosing a Detection Stack

  1. Start with server-side signals. Deploy TLS fingerprinting and header analysis at the edge or load balancer. They work on every request, including API calls and bot traffic that never executes JavaScript.
  2. Add lightweight client-side collection. A small script that gathers canvas, WebGL, audio, and font signals. Accept that 5-15% of legitimate traffic will return partial or empty data due to privacy tools.
  3. Layer behavioral collection for high-value flows. Login, checkout, form submission — capture mouse, keyboard, and scroll dynamics.
  4. Feed all signals into a scoring model. Do not threshold on any single signal. Weight server-side signals higher; use client-side signals for corroboration.
  5. Continuously retrain. Privacy tool behavior evolves. Monitor false-positive rates by browser family and privacy setting cohort.

Key Facts

Fact Detail
Empty font canvas checks in BotRefund 1 of 106 independent signals
Signal treatment Evidence, not verdict — cross-checked against browser, network, device, behavior data
Privacy tool impact Firefox resistFingerprinting, Brave farbling, CanvasBlocker extensions return empty/randomized results
BotRefund claimed accuracy 99% via AI model weighing complete pattern across all signals
Setup time ~1 minute to add BotRefund script and start free bot audit
Refund recovery scope Google and Meta ad spend back to 2017

Limitations and When This Advice Does Not Apply

  • Internal tools behind VPN: If all traffic comes from a controlled corporate network with managed browsers, client-side signals become more reliable and privacy tools are absent.
  • Mobile app traffic: Native apps don't run browser fingerprinting; use certificate pinning and device attestation instead.
  • Regulatory constraints: Some jurisdictions restrict fingerprinting. Server-side header analysis may be the only compliant option.
  • Zero-JavaScript environments: If you cannot run client scripts (e.g., AMP pages, strict CSP), rely entirely on TLS, headers, and IP context.

FAQ

Does an empty font canvas mean the visitor is a bot?

No. Privacy tools, hardened browsers, corporate policies, and unusual devices (e.g., minimal Linux installs) routinely produce empty font canvas results for real humans. Treat it as a weak signal that requires corroboration.

Can privacy tools spoof TLS fingerprints?

Not easily. TLS fingerprints are determined by the system's TLS library and OS network stack. Browser extensions cannot modify the Client Hello. Spoofing requires a custom TLS client or MITM proxy, which is far less common than installing a browser extension.

How much does behavioral biometrics improve detection over static fingerprinting?

Behavioral signals catch sophisticated bots that perfectly spoof static fingerprints but cannot replicate human micro-variance at scale. They add the most value on high-value actions (login, checkout) where you can collect enough events.

What false-positive rate should I expect from empty font canvas alone?

In populations with high privacy-tool adoption (tech audiences, privacy advocates), 10-20% of legitimate users may trigger empty-canvas signals. In general consumer traffic, 3-8%. Never gate on this signal alone.

Can I use empty font canvas detection without JavaScript?

No. Canvas rendering and font enumeration require JavaScript execution in the browser. If scripts are blocked or disabled, the signal is unavailable.

How does BotRefund handle privacy-tool false positives?

BotRefund keeps each signal as independent evidence and cross-checks it against 105 other signals. The AI model learns that empty font canvas + normal TLS + normal headers + human behavior = privacy-conscious human, not bot.

What is the fastest way to test if my current detection is vulnerable to privacy tools?

Run your detection against a browser with privacy.resistFingerprinting=true (Firefox) or Brave Shields enabled. Compare signal completeness and classification accuracy against a standard Chrome profile.

Further reading and comparison sources

These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.

How BotRefund can help

BotRefund runs 106 independent checks — including empty font canvas, TLS fingerprinting, header analysis, hardware fingerprinting, and behavioral biometrics — and feeds them into an AI model that weighs the complete pattern. You add a single script in about a minute, start a free bot audit, and if bot clicks are found on your Google or Meta campaigns, BotRefund captures video proof and helps you file refund claims back to 2017. The system is built for corroboration, not single-signal verdicts, so privacy-tool false positives stay low.

Get my free bot audit