WhatCanFingerprint/README.md
2025-08-29 00:19:10 +03:00

141 lines
5.0 KiB
Markdown

# 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.