fingerprinting — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited fingerprinting (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Understand how websites identify browsers through fingerprinting, and how to manage fingerprint isolation for multi-account scenarios.
Websites collect dozens of browser attributes to create a unique "fingerprint" that identifies your browser across sessions — even without cookies. Key attributes include:
| Attribute | What it reveals | Uniqueness |
|---|---|---|
| User-Agent | OS, browser, version | Low |
| Screen resolution | Display size, pixel ratio | Medium |
| Canvas | GPU rendering differences | High |
| WebGL | Graphics card info, rendering | High |
| AudioContext | Audio processing fingerprint | High |
| Fonts | Installed system fonts | High |
| Timezone | Geographic region | Low |
| Language | Browser/OS language settings | Low |
| WebRTC | Real IP address (even behind VPN) | Critical |
| Hardware concurrency | CPU core count | Medium |
| Device memory | RAM amount | Medium |
| Platform | OS architecture | Low |
# Open BrowserScan to see your fingerprint profile
# Works with Selenium or Playwright
driver.get("https://www.browserscan.net/")
# or
page.goto("https://www.browserscan.net/")Other fingerprint checking sites:
Canvas fingerprinting draws invisible shapes on an HTML5 canvas and hashes the pixel data. Different GPUs and rendering engines produce different results.
// How sites detect canvas fingerprint (conceptual)
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
ctx.textBaseline = 'top';
ctx.font = '14px Arial';
ctx.fillText('fingerprint test', 2, 2);
const hash = canvas.toDataURL().hashCode();To spoof: Antidetect browsers like AdsPower inject noise into canvas rendering so each profile produces a different hash.
WebGL exposes GPU vendor, renderer, and shader precision — very hard to spoof manually.
const gl = document.createElement('canvas').getContext('webgl');
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
const vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
const renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);WebRTC can reveal your real IP address even when using a proxy or VPN.
// WebRTC leak test
const pc = new RTCPeerConnection({ iceServers: [] });
pc.createDataChannel('');
pc.createOffer().then(offer => pc.setLocalDescription(offer));
pc.onicecandidate = event => {
if (event.candidate) {
console.log('IP:', event.candidate.candidate);
}
};To prevent: Disable WebRTC or use an antidetect browser that masks the real IP in WebRTC.
When managing multiple accounts, each account needs a unique, consistent fingerprint. Using the same fingerprint across accounts is a common reason for account linking and bans.
Required isolation per account:
Tools for fingerprint management:
A fingerprint must be internally consistent. Common mistakes:
| Mistake | Detection signal |
|---|---|
| US proxy + China timezone | Timezone doesn't match IP geolocation |
| Windows User-Agent + Mac fonts | OS fonts don't match claimed OS |
| High-end GPU in WebGL + mobile User-Agent | Hardware doesn't match device type |
| Same canvas hash across 50 accounts | All accounts have identical fingerprint |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.