Device Fingerprinting
Identify devices across sessions without cookies.
Overview
Device fingerprinting creates a unique identifier by combining:
- Browser properties
- Canvas rendering
- WebGL capabilities
- Audio processing
- Installed fonts
How It Works
graph LR
A[Browser Data] --> B[SDK]
B --> C[Hash Components]
C --> D[Device Fingerprint]
Collecting Device Signals
JavaScript
import SimplrFraud from '@simplr-ai/js';
const simplr = new SimplrFraud();
const signals = await simplr.collect();
// Send to your backend
await fetch('/api/check', {
method: 'POST',
body: JSON.stringify({
email: 'user@example.com',
device: signals.device
})
});
Flutter
final simplr = SimplrFraud();
final signals = await simplr.collect(context);
// Send to your backend
await api.post('/check', {
'email': 'user@example.com',
'device': signals.device.toJson()
});
Device Signals
| Signal | Description |
|---|---|
fingerprint | Unique device hash |
device_id | Persistent ID (localStorage) |
is_new_device | First time seeing this device |
is_headless | Automated browser detected |
is_webdriver | Selenium/Puppeteer detected |
canvas_blocked | Fingerprinting blocked |
Use Cases
Detect Multi-Accounting
Same device creating multiple accounts:
{
"device": {
"fingerprint": "fp_abc123",
"seen_count": 5,
"accounts_linked": 3
},
"risk_score": 70
}
Bot Detection
Automated browser without human behavior:
{
"device": {
"is_headless": true,
"is_webdriver": true
},
"risk_score": 95
}
Privacy Considerations
- No personal data collected
- Hashes are one-way
- Users can reset device_id
- Disclose in privacy policy