Font fingerprinting identifies your device by detecting which fonts are installed on your system. Different operating systems, software installations, and user preferences create unique font combinations.
🔬 How Font Detection Works
Websites can't directly list your fonts, but they can detect them through rendering:
- Create a hidden text element
- Set the font to a test font with fallback
- Measure the text width
- If width differs from fallback, font is installed
// Font detection technique
function isFontInstalled(fontName) {
const testString = 'mmmmmmmmmmlli';
const testSize = '72px';
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
// Measure with fallback font
ctx.font = testSize + ' monospace';
const fallbackWidth = ctx.measureText(testString).width;
// Measure with test font
ctx.font = testSize + ' "' + fontName + '", monospace';
const testWidth = ctx.measureText(testString).width;
return fallbackWidth !== testWidth;
}
📊 What Fonts Reveal
| Font | Indicates |
|---|---|
| Calibri, Cambria | Microsoft Office installed |
| Helvetica Neue | macOS system |
| Adobe fonts | Creative Cloud installed |
| Consolas, Fira Code | Developer/programmer |
| Chinese/Japanese fonts | Language/region |
🛡️ Font Spoofing Techniques
1. Font List Filtering
Report only a subset of common fonts that match the spoofed OS.
2. Font Emulation
Make the browser report fonts that aren't actually installed.
3. Rendering Modification
Modify how fonts render to create consistent fingerprints.
❓ FAQ
Fingerprinting scripts typically test hundreds of fonts. A typical Windows system has 200-400 fonts, macOS has 300-500, and Linux varies widely.
Blocking font detection breaks many websites. Antidetect browsers instead provide consistent, realistic font lists that match the spoofed device profile.