Skip to main content

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

SignalDescription
fingerprintUnique device hash
device_idPersistent ID (localStorage)
is_new_deviceFirst time seeing this device
is_headlessAutomated browser detected
is_webdriverSelenium/Puppeteer detected
canvas_blockedFingerprinting 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