141 lines
5.0 KiB
Markdown
141 lines
5.0 KiB
Markdown
# WhatCanFingerprint
|
|
|
|
[](LICENSE)
|
|
[](https://www.typescriptlang.org/)
|
|
[](https://svelte.dev/)
|
|
[](https://vitejs.dev/)
|
|
[](https://nodejs.org/)
|
|
|
|
[](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.
|