Browser leaks test

Browser Leaks Test: Fingerprint, Antidetect and Bot Checks

ProxyField's free browser leaks test runs 40 checks on the browser you open it in, from antidetect spoofing and automation traces to canvas, WebGL and audio noise, WebRTC and DNS leaks and signs of a proxy, and sums them up in a trust score from 0 to 100.

It starts when the page opens, with no sign-up: open it in each browser or antidetect profile you want to test.

Trust score
— / 100
Checking
Fingerprint ID —
Fingerprint
Checking
Automation
Checking
Proxy and VPN
Checking
Leaks
Checking
Starting the checks…
Automation and bots
6 checks
  • Checking
    navigator.webdriver
  • Checking
    Headless user agent
  • Checking
    DevTools protocol
  • Checking
    Automation traces
  • Checking
    Headless traits
  • Checking
    Software GPU
Fingerprint consistency
20 checks
  • Checking
    User agent vs Client Hints system
  • Checking
    User agent version and header
  • Checking
    User agent vs navigator.platform
  • Checking
    Browser vs JavaScript engine
  • Checking
    Browser version vs features
  • Checking
    System vs GPU
  • Checking
    System vs fonts
  • Checking
    System vs speech voices
  • Checking
    Main page vs Web Worker
  • Checking
    Main page vs iframe
  • Checking
    Patched browser functions
  • Checking
    Canvas noise
  • Checking
    WebGL noise
  • Checking
    Audio noise
  • Checking
    Client rects noise
  • Checking
    Screen size
  • Checking
    Time zone APIs
  • Checking
    Language settings
  • Checking
    CPU and memory
  • Checking
    Touch vs device type
Network and IP
14 checks
  • Checking
    IP type
  • Checking
    VPN network
  • Checking
    Tor exit node
  • Checking
    Proxy headers
  • Checking
    Time zone vs IP
  • Checking
    Languages vs IP country
  • Checking
    WebRTC leak
  • Checking
    DNS resolver
  • Checking
    Network OS (TCP/IP)
  • Checking
    Connection MTU
  • Checking
    Latency gap
  • Checking
    TLS client vs browser
  • Checking
    IPv4 and IPv6 paths
  • Checking
    System clock
Navigator and user agent
Status
Waiting for the checks
Client Hints
Status
Waiting for the checks
Hardware and GPU
Status
Waiting for the checks
Screen and window
Status
Waiting for the checks
Time zone and languages
Status
Waiting for the checks
Canvas, WebGL and audio
Status
Waiting for the checks
Fonts
Status
Waiting for the checks
Media devices and speech voices
Status
Waiting for the checks
Codecs
Status
Waiting for the checks
Permissions, storage and privacy
Status
Waiting for the checks
TLS fingerprint
Status
Waiting for the checks
TCP/IP fingerprint
Status
Waiting for the checks
WebRTC addresses
Status
Waiting for the checks
IP data: DB-IP Lite, CC BY 4.0. The checks run in your browser and on ProxyField's checking server; nothing is saved.

Each check shows Pass, Warning or Fail, what it found and how to fix it. The test is built for people who manage several browser profiles in antidetect browsers such as AdsPower, GoLogin, Dolphin Anty, Multilogin, Incogniton and BitBrowser, who run Selenium, Puppeteer or Playwright, or who browse through proxies.

The checks run in your browser and on ProxyField's checking server, which reads the TLS and TCP/IP traits of your connection. Nothing is saved: there is no account, no record of your results and nothing in browser storage. The server keeps a test's DNS lookups and connection details in memory for up to 5 minutes, so your browser can read them, then drops them. The fingerprint ID is computed from your browser's values on every run and is not stored.

QuestionShort answer
Can sites tell my antidetect profile is spoofed?If its values contradict each other: read Fingerprint and Automation, where each fail names the value that gives the profile away (how profiles get caught)
Does my proxy leak?Read Proxy and VPN and Leaks: WebRTC, DNS, time zone and 11 more network checks (network checks)
Why does another test say something else?Each test reads its own values and scores them its own way (why)
How it works

How to check your browser for leaks and spoofing

Test the browser exactly as you use it: the same profile, the same proxy and the same launch options.

  1. Open this page in the browser or antidetect profile you want to test, with its proxy on, and let the 40 checks finish.

  2. Read the trust score and the 4 verdicts, then open each Warning and Fail for what it found and how to fix it.

  3. Change one setting at a time, press Run again, and compare the fingerprint ID across profiles: each profile should show its own.

Results

What the results mean

Every check gets one of three results, and the trust score and four verdicts sum them up.

Pass
The value fits the rest of the browser and the connection.
Warning
Something unusual that real devices also show, such as a rare screen size or a language that does not fit the IP's country.
Fail
A contradiction or a trace that an unmodified browser does not show, such as navigator.webdriver set to true or a Mac user agent with a Direct3D GPU.
Trust score
0 to 100 for the whole test; the higher it is, the fewer problems the checks found.
Fingerprint
Consistent, or signs of spoofing in the fingerprint values.
Automation
None, or detected: traces of WebDriver, the DevTools protocol or a headless browser.
Proxy and VPN
None, or signs of a proxy or VPN in the IP and the connection.
Leaks
None, or a WebRTC or DNS leak.
Fingerprint ID
A hash of the values that stay stable, so the same browser shows the same ID on the next visit unless something changed.
Testing guide

The 40 checks in 3 groups

Automation: 6 checks

CheckWhat it catches
navigator.webdriverthe flag the WebDriver standard sets to true when a browser is under automation
Headless user agentHeadlessChrome or another headless name in the user agent
DevTools protocol attachedthe trace Puppeteer, Playwright and Selenium leave when they drive Chrome over the DevTools protocol; an open DevTools window shows it too
Automation globalsvariables that Selenium, PhantomJS, Playwright and other tools add to the page
Headless traitsno PDF viewer plugins, an outer window size of 0, a missing window.chrome, a notification permission that contradicts itself
Software GPUa WebGL renderer such as SwiftShader or llvmpipe: a virtual machine or a server without a graphics card

Fingerprint consistency: 20 checks

  • What the browser claims: the user agent against the Client Hints platform, against the Client Hints version and against navigator.platform; the claimed browser against its JavaScript engine; the claimed version against the features that engine really has.
  • What the device claims: the operating system against the WebGL GPU (Direct3D on a Mac user agent), against the installed fonts and against the speech voices; plausible CPU cores and device memory; touch support against the device type; the screen size against media queries and the window.
  • Values in other contexts: the main page against a Web Worker and against an iframe; native browser functions patched by a script.
  • Noise: in canvas, WebGL pixels, the audio fingerprint and client rects.
  • Locale: the time zone against the date offset; the languages against the locale and the Accept-Language header.

Network and IP: 14 checks

  • The IP: a datacenter IP, a VPN network, a Tor exit.
  • Headers: proxy headers such as Via and X-Forwarded-For.
  • Location fit: the browser time zone against the IP's, the languages against the IP's country.
  • Leaks: WebRTC, the DNS resolver against the IP, an IPv6 address from another network than the IPv4 one.
  • The connection: the TCP/IP operating system against the browser's, a tunnel MTU, the latency gap, the TLS client against the claimed browser, the system clock against the server's time.

Ten of these are also the checks of the IP checker; the latency gap, the TLS client, the IPv6 network and the clock run only here.

How antidetect profiles get caught: contradictions, not uniqueness

A site does not need to know your fingerprint to flag it. It looks for values that cannot be true together. Direct3D exists only on Windows, so a profile that claims macOS while WebGL names Direct3D contradicts itself, and so does one with Windows fonts or Windows speech voices. So does a user agent that claims a newer Chrome than the engine's features show, or Client Hints that name another platform than the user agent.

Spoofing leaves seams. A script or extension that changes navigator values on the page often misses the copies a Web Worker or a fresh iframe reads, and a patched function stops looking native when a script inspects it. The test reads the values in all three places and checks the functions.

Noise can be measured. To give each profile its own canvas, WebGL and audio hashes, many antidetect browsers add small random changes to what those APIs return. A script can draw the same thing twice, or draw something whose result is known, and look for differences a real graphics card or audio stack does not make. Noise that changes on every read is easier to catch than noise that stays the same for the profile.

Uniqueness is another question. AmIUnique and the EFF's Cover Your Tracks measure how rare your fingerprint is among their visitors. A rare but consistent fingerprint is still a real device; a common but contradictory one is a spoof. This test scores consistency, and no browser is undetectable: the aim is a profile with nothing that contradicts itself.

How to fix failed checks in antidetect browsers

Most fixes are profile settings, not proxy settings. AdsPower, GoLogin, Dolphin Anty, Multilogin, Incogniton and BitBrowser name them differently, and labels can differ slightly between versions.

Failed checkWhat to change in the profile
User agent vs Client Hints, engine or versionuse a user agent of the same browser version as the profile's browser core, or update the app so the two match
OS vs WebGL GPU, fonts or voicescreate profiles for the operating system your machine runs, or mask WebGL with a GPU that fits the claimed system, and use that system's fonts and voices
Main page vs Worker or iframe, patched functionsremove extensions or scripts that change values on top of the profile, and let the profile set them
Canvas, WebGL, audio or client rects noiseweigh the trade-off: with noise on, a script that looks for it can find it; with it off ("Real" or "Off"), profiles on one machine share those hashes
Time zone, languages, localeset time zone, language and geolocation "based on IP", so they follow the proxy
WebRTCchoose the mode that replaces your IP with the proxy's ("Altered", "Replace", "Forward" or "Based on IP")
Screen, CPU cores, memory, touchpick values that fit the device type: a desktop profile with touch points, or a phone profile with 32 CPU cores, contradicts itself
DNSset the proxy type your provider gives (HTTP or SOCKS5), so names are resolved through the proxy

Then compare fingerprint IDs: two profiles that show the same ID share their stable values, and a site that fingerprints can tie them together. Setup guides for each app: AdsPower, GoLogin, Dolphin Anty, Multilogin, Incogniton and BitBrowser, with an overview in antidetect browsers.

Automation traces: Selenium, Puppeteer and Playwright

A browser under automation shows itself in ways a person's browser does not:

  • The WebDriver flag. Selenium and other WebDriver tools make navigator.webdriver return true, as the W3C standard requires.
  • The DevTools protocol. Puppeteer and Playwright drive Chrome over the DevTools protocol, and ChromeDriver uses it under Selenium; a page script can notice the connection. An open DevTools window uses it too, so the check can fail while you debug in a normal browser.
  • Headless defaults. Headless Chrome names itself HeadlessChrome in the user agent unless you change it, and older headless builds have no PDF viewer plugins, an outer window of 0 by 0 and no window.chrome.
  • No graphics card. On a server, WebGL runs in software, and the renderer reads SwiftShader or llvmpipe.

If you automate a browser for testing or for collecting public data, these checks show what a site's bot detection sees. A headed browser on a machine with a real GPU, a lasting user profile and no automation flags leaves fewer traces; stealth plugins patch only the traces they know, and they fall behind new checks. Follow each site's terms. Guides: Selenium, Puppeteer, Playwright and browser fingerprinting in web scraping.

What a proxy changes in the network checks, and what it cannot

The proxy decides the IP, its network and type, and the traits of the TCP connection that reaches the site. The rest stays with your browser and your machine.

  • TLS client. The handshake that starts an HTTPS connection, summed up as JA4 or JA3, depends on the software that opens it, and real Chrome, Firefox and Safari each have their own. A proxy tunnels the handshake unchanged, so a script that sends a Chrome user agent through a proxy still shows a script's handshake. More: TLS and TCP fingerprinting.
  • TCP/IP and MTU. Through a proxy, the TCP connection that reaches the server is the proxy side's, so its operating system can contradict your browser's; through a VPN the packets are your own, but the tunnel lowers the MTU.
  • Latency gap. The server times the TCP connection's own round trip and the round trip a page script measures. With a proxy in the path, the TCP round trip ends at the proxy while the script's runs all the way to you, so the second is much longer.
  • IPv6 from another network. If your browser reaches the server over IPv6 from your own provider while the IPv4 address is the proxy's or VPN's, part of your traffic goes around it.
  • System clock. A clock far from the server's time points to a paused virtual machine or a date set by hand; it can fail without any proxy.

Why Pixelscan, BrowserLeaks, CreepJS and this test disagree

Each test reads its own set of values, uses its own rules and turns them into its own verdict, so one profile can pass one test and fail another.

  • Different checks. A value one test reads, another ignores, and two tests can read the same value and judge it differently.
  • Different reference data. What is normal for a given Chrome version changes with each release, and tests update their rules on their own schedules.
  • Different IP data. The IP type and location come from each test's own database.
  • Timing. Checks that time the connection, or gather WebRTC addresses, can differ between two runs.
  • A test is not a site. Anti-fraud systems also weigh your account, cookies, behavior and history, and they do not publish their rules.

When tests disagree, read the reason each one gives. A contradiction that one test names is there for any site that looks for it.

Proxy, VPN or antidetect browser: what fixes what

ProblemWhat fixes it
Datacenter or VPN IP flaggeda residential or mobile proxy
Several profiles on one IPa separate proxy for each profile
Time zone and languagesthe profile's or the system's settings
WebRTC leakthe browser's or the profile's WebRTC setting
DNS leakDNS on the proxy side, or through the VPN tunnel
Fingerprint contradictions, noisethe antidetect browser's profile settings
Automation traceshow the browser is launched
TLS client mismatchsending the requests from a real browser

What the full data tables show

Below the checks, collapsible tables list the raw values a site can read: navigator and user agent, Client Hints, hardware (CPU cores, memory, touch, GPU), screen and window, time zone and languages, the canvas hash, the WebGL vendor and renderer with a hash of its parameters, the audio hash, detected fonts, media devices and speech voices, codecs, permissions, storage and privacy flags (cookies, Do Not Track, Global Privacy Control), the TLS fingerprint (JA4, JA3 hash, TLS version, ALPN), the TCP/IP fingerprint (TTL, window, MSS, options) and the WebRTC IPs. Copy report puts them on your clipboard as JSON, so you can compare two profiles side by side.

Need proxies for your browser profiles?

The proxy answers only the network checks, and only part of them. If the IP was flagged as datacenter or VPN, ProxyField residential proxies from $1.95/GB or mobile proxies from $2.45/GB give each profile an IP of a home ISP or a mobile carrier; start with the Easy Trial: 1 GB for $2.95. For a profile that keeps one IP for weeks, dedicated ISP proxies cost from $2.29 per IP for 30 days ($2.29 in Turkey and Czechia, $2.79 in every other country).

No proxy changes the fingerprint, the time zone, WebRTC or the TLS handshake. Set those in the profile, give each profile its own proxy, and run this test again inside each one. Prices for every volume are on the pricing page.

FAQ

Browser Leaks Test FAQ

Can't find your answer? Support is on 24/7 live chat, including help with setup and integration.

What is a browser leaks test?

ProxyField's browser leaks test is a check of what your browser reveals and whether it adds up: 40 checks in 3 groups (automation, fingerprint consistency, network and IP), a trust score from 0 to 100 and 4 verdicts. It shows WebRTC and DNS leaks, signs of a proxy or VPN, and the contradictions that give spoofed or automated browsers away.

How do I check if my antidetect browser is detectable?

Open this test inside the profile, with its proxy on, and read the Fingerprint and Automation verdicts: a fail names the value that contradicts the rest, such as a GPU that does not fit the claimed operating system. Then read the network checks for the proxy. No browser is undetectable, so the goal is a profile without contradictions, tested again after each app update.

What does the trust score in a browser test mean?

It sums up the checks from 0 to 100: the higher it is, the fewer problems they found. It is this test's own score, and another test weighs other values, while a site uses its own signals. A high score is a good sign, not a promise.

Why does the test say my fingerprint shows signs of spoofing?

At least one consistency check found values that real browsers do not combine, such as a user agent and Client Hints that disagree, a Web Worker that reports other values than the page, or noise in canvas or audio output. Open the failed checks: each names the values involved and the setting to change.

Can websites detect canvas noise?

Some can. A script can draw the same image twice, or draw one with a known result, and compare: random changes that no real graphics card makes show up as noise. That is why a canvas noise setting can fail this test while it gives each profile its own hash.

What does navigator.webdriver true mean?

The browser is under automation: the W3C WebDriver standard sets the flag when Selenium or another automation tool controls it. An ordinary browser that a person uses reports false, so the check fails on true.

Why does an open DevTools window fail the automation check?

The check looks for the DevTools protocol connection that Puppeteer, Playwright and Selenium use to drive Chrome, and an open DevTools window uses the same protocol. Close DevTools and press Run again; if the check still fails, something else is attached to the browser.

Why does WebGL show SwiftShader or llvmpipe?

Those are software renderers: the browser draws WebGL on the CPU because it has no graphics card to use, as on most servers and many virtual machines, or because hardware acceleration is off. Real desktop and phone browsers report a GPU, so the check fails. Turn hardware acceleration on in the browser settings, or run the browser on a machine with a GPU.

What are Client Hints, and why do they contradict my user agent?

Client Hints are the newer way Chromium browsers report their brand, version and platform, in Sec-CH-UA headers and navigator.userAgentData. A user agent switcher, or a profile that changes only the user agent string, leaves the hints as they were, so a Windows user agent can arrive with hints that say macOS. Firefox and Safari do not send them.

Why are the values in a Web Worker different from the page?

A script or extension that rewrites navigator values on the page often does not reach Web Workers, which have their own navigator. The test reads both and fails when they differ, for example in the user agent, the languages or the CPU cores. A well-built antidetect profile sets them in both.

Show 11 more questionsShow fewer questions

What is a fingerprint ID?

A hash of the browser values that stay the same between visits, computed on each run and not stored. The same browser shows the same ID next time unless something changed, so you can check that a profile keeps its fingerprint and that two profiles do not share one.

Should every browser profile have its own fingerprint?

For profiles that must stay separate, yes: two profiles with the same fingerprint ID share their stable values, and a site that fingerprints can link them. Give each one its own proxy as well, since a shared IP links profiles too.

Which fingerprint values does a proxy change?

Only network ones: the IP, its location and type, and the TCP/IP traits of the connection that reaches the site. The user agent, screen, fonts, canvas, WebGL, audio, time zone, languages and the TLS handshake stay as your browser makes them.

Why does the TLS check say my browser is not what it claims?

Each browser's TLS handshake (JA4, JA3) is distinctive, and the check compares it with the browser your user agent names. A script or HTTP library with a browser's user agent fails, and so does a browser whose user agent was switched to another brand. A proxy cannot change it, because it passes the handshake through.

What does the latency gap check mean?

The server compares the round trip of your TCP connection with the round trip a script on the page measures. Through a proxy, the TCP connection ends at the proxy, so the page's round trip is much longer than the connection's. A large gap points to a proxy in the path, and no browser setting removes it.

Why does Pixelscan say my profile is fine when this test does not?

Each test reads its own values and uses its own rules, so their verdicts differ. Read which check failed here: if it names a real contradiction, a site that looks for it can find it too, whatever another test says.

Does fingerprint protection in Brave or Firefox fail these checks?

Some of them, by design. Brave adds small random changes to canvas, WebGL and audio output, which the noise checks can see, and Firefox with resistFingerprinting on reports UTC as its time zone, which can fail the time zone checks. These browsers trade consistency for privacy: fine for everyday browsing, a contradiction for a profile that must look like an ordinary device.

Can a fingerprint test tell that I'm in a virtual machine?

Often. A virtual machine without a passed-through graphics card renders WebGL in software, as SwiftShader or llvmpipe, and the software GPU check fails whatever operating system the browser claims. Its screen, fonts and hardware values can also be unusual for the device it claims to be.

Does the browser leaks test store my fingerprint?

No. The checking server sees your connection, as any site does, to read its TLS and TCP/IP traits, and it keeps DNS lookups and connection details in memory for up to 5 minutes before it drops them. Nothing is saved: there is no account, no record of results and nothing in browser storage, and the fingerprint ID is computed again on every run.

Do browser extensions change my fingerprint?

Some do. Extensions that block scripts, change the user agent or add canvas noise change values the checks read, often only on the page and not in Workers or iframes, which the consistency checks catch. An antidetect profile works more reliably without extensions that touch the fingerprint.

Why does the system clock check fail?

Your device's clock is far from the server's time. It happens on virtual machines that were paused and on devices with a date set by hand; turn on automatic date and time in the operating system's settings and press Run again.