You cleared your cookies. You're using incognito. You switched to a different IP. And the website still knows it's you.
Welcome to canvas fingerprinting — one of the most persistent tracking techniques on the web.
What is Canvas Fingerprinting?
The HTML5 Canvas API lets browsers render 2D graphics. What most developers don't realize is that the exact pixel output of canvas rendering differs slightly between machines — due to differences in:
- GPU model and driver version
- Operating system font rendering
- Anti-aliasing implementation
- Subpixel rendering settings
These tiny variations produce a unique "fingerprint hash" for each device.
How Websites Extract It
function getCanvasFingerprint() {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
// Draw text with specific styling
ctx.textBaseline = 'top';
ctx.font = '14px Arial';
ctx.fillText('Browser fingerprint test 🔐', 2, 2);
// Add geometric shapes
ctx.fillStyle = 'rgba(255, 0, 100, 0.5)';
ctx.fillRect(100, 5, 80, 50);
// The toDataURL output is your fingerprint
return canvas.toDataURL();
}
The resulting string is hashed and stored server-side. Next visit — same hash, same user, regardless of cookies or IP.
Why It Persists Across Everything
| User Action | Hides Canvas Fingerprint? |
|---|---|
| Clear cookies | ❌ No |
| Use incognito | ❌ No |
| Change VPN/proxy | ❌ No |
| Use different Chrome profile | ❌ No |
| Use different browser (Chrome → Firefox) | ✅ Slightly different |
| Use different machine | ✅ Yes |
Real-World Impact
E-commerce sellers: If you run multiple Amazon/eBay stores from one machine, every account has the same canvas hash. Amazon correlates these within hours.
Social media managers: Running 10 Twitter accounts from one laptop? Same fingerprint on all 10.
Scrapers/automation: Sites like LinkedIn and Cloudflare use canvas hashing as a bot signal.
The Fix: Fingerprint Spoofing Per Profile
True protection requires randomizing or spoofing the canvas output per browser profile — not just blocking it (which itself becomes a fingerprint).
Tools like FireKey handle this at the profile level: each browser environment gets a deterministic but unique canvas fingerprint, making profiles appear as completely different devices.
Free open beta: app.firekey.ai
Verify Your Canvas Fingerprint
→ https://browserleaks.com/canvas — shows your exact canvas hash
Run it twice across sessions. If the hash is the same — you're trackable.
This article was written in a FireKey isolated browser environment with a unique canvas fingerprint.
Top comments (0)