WhatCanFingerprint
A browser fingerprinting analysis tool.
Overview
WhatCanFingerprint is a web application that demonstrates the extensive capabilities of browser fingerprinting. It showcases how much information can be gathered about a user's device, browser, and behavior without requiring any permissions or user interaction.
Features
Core Browser APIs
- Basic Information - User Agent, platform, vendor, cookie settings, DNT header
- Display Properties - Screen resolution, color depth, pixel ratio, orientation
- Localization - Timezone, date/time formatting, language preferences
- Graphics Rendering - Canvas 2D fingerprinting with geometric shapes and text
- WebGL Analysis - GPU vendor, renderer, supported extensions, parameters
- Audio Context - Sample rates, channel configuration, processing capabilities
Advanced Detection Methods
- Font Detection - Available system fonts through measurement techniques
- Plugin Enumeration - Installed browser plugins and extensions
- Hardware Profiling - CPU cores, memory, touch capabilities
- Network Analysis - Connection type, bandwidth estimation, RTT measurement
- Battery API - Charging status, level, time estimates
- Media Devices - Available cameras, microphones, speakers
- Storage APIs - Support for localStorage, sessionStorage, IndexedDB, WebSQL
Security & Privacy Analysis
- Permissions - Geolocation, notifications, push messaging capabilities
- Security Headers - Content Security Policy, referrer policy analysis
- Detection Evasion - Headless browser detection, automation signatures
- Timing Attacks - Performance-based fingerprinting techniques
- Memory Pressure - JavaScript heap analysis and garbage collection patterns
Behavioral Fingerprinting
- Mouse Dynamics - Movement patterns and interaction timing
- Keyboard Timing - Keystroke dynamics and typing patterns
- Scroll Behavior - Scrolling velocity and acceleration patterns
- Touch Gestures - Multi-touch capabilities and gesture recognition
- Device Motion - Accelerometer and gyroscope data analysis
Technology Stack
- Svelte 4 - Modern reactive framework with excellent performance
- TypeScript - Strong typing for better code quality and developer experience
- Vite - Fast build tool with instant hot module replacement
- Modern Web APIs - Extensive use of cutting-edge browser capabilities
Quick Start
Prerequisites
- Node.js 18+
- pnpm (recommended) or npm
Installation
# Install dependencies
npm install
# Start development server
pnpm dev
Open http://localhost:3000 in your browser.
Production Build
# Build for production
pnpm build
# Preview production build
pnpm preview
Type Checking
# Run TypeScript type checking
pnpm check
Project Structure
src/
├── components/ # Reusable Svelte components
│ ├── ExportButton.svelte
│ ├── FingerprintGrid.svelte
│ ├── FingerprintSection.svelte
│ ├── LanguageSwitch.svelte
│ └── ProgressBar.svelte
├── lib/ # Core fingerprinting logic
│ ├── fingerprint.ts # Main fingerprinting functions
│ ├── webrtc.ts # WebRTC-specific implementations
│ ├── i18n.ts # Internationalization system
│ └── advanced-fingerprint*.js
├── styles/ # Global CSS styles
│ └── global.css
├── types/ # TypeScript type definitions
│ └── fingerprint.ts
└── App.svelte # Main application component
Browser Compatibility
- Chrome/Chromium 80+
- Firefox 75+
- Safari 13+
- Edge 80+
Some features may not be available in all browsers due to API support variations.
Privacy & Ethics
This tool is designed for educational and research purposes only. It demonstrates the capabilities of browser fingerprinting to:
- Educate users about digital privacy
- Help developers understand browser security
- Assist researchers in privacy studies
- Enable security professionals to test defenses
Important: Always obtain proper consent before collecting user data in production applications.
License
0BSD
Contributing
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests to improve the project.