# WhatCanFingerprint [![License](https://img.shields.io/badge/license-0BSD-blue.svg)](LICENSE) [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?logo=typescript&logoColor=white)](https://www.typescriptlang.org/) [![Svelte](https://img.shields.io/badge/Svelte-FF3E00?logo=svelte&logoColor=white)](https://svelte.dev/) [![Vite](https://img.shields.io/badge/Vite-646CFF?logo=vite&logoColor=white)](https://vitejs.dev/) [![Node.js](https://img.shields.io/badge/Node.js-18+-339933?logo=node.js&logoColor=white)](https://nodejs.org/) [![Privacy Research](https://img.shields.io/badge/Privacy-Research-green)](https://en.wikipedia.org/wiki/Device_fingerprint) 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 ```bash # Install dependencies npm install # Start development server pnpm dev ``` Open http://localhost:3000 in your browser. ### Production Build ```bash # Build for production pnpm build # Preview production build pnpm preview ``` ### Type Checking ```bash # 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.