# samyk/evercookie

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/samyk-evercookie).**

4,723 stars · 657 forks · JavaScript

## Links

- GitHub: https://github.com/samyk/evercookie
- Homepage: https://samy.pl/evercookie/
- awesome-repositories: https://awesome-repositories.com/repository/samyk-evercookie.md

## Description

Evercookie is a JavaScript tracking script designed for persistent user identification. It implements a system that mirrors unique identifiers across multiple browser storage mechanisms to maintain tracking after a user clears their browser history.

The tool ensures data persistence by synchronizing identifiers across cookies, local storage, and legacy plugin caches. It uses automatic storage regeneration to refill empty storage slots from surviving sources and employs a majority-vote selection process to determine the correct identifier when retrieving data.

The project also includes capabilities for web history detection using CSS-based lookup techniques and provides mechanisms to synchronize tracking data between different web browsers on the same machine via shared plugins or system-level components.

## Tags

### Data & Databases

- [Persistent User Identifiers](https://awesome-repositories.com/f/data-databases/state-persistence/browser-storage-persistence/persistent-user-identifiers.md) — Creates and regenerates unique user identifiers across multiple storage mechanisms to maintain tracking after history is cleared. ([source](https://samy.pl/evercookie/))
- [Persistent Cookies](https://awesome-repositories.com/f/data-databases/state-persistence/browser-storage-persistence/persistent-cookies.md) — Maintains tracking persistence by restoring deleted cookies from intact backup sources like local storage. ([source](https://cdn.jsdelivr.net/gh/samyk/evercookie@master/README.md))

### Security & Cryptography

- [Browser Fingerprinting Services](https://awesome-repositories.com/f/security-cryptography/browser-fingerprinting-services.md) — Implements a system for identifying users via browser signals that persist even after privacy data is cleared.
- [Stealth Fingerprinting Techniques](https://awesome-repositories.com/f/security-cryptography/device-fingerprinting/stealth-fingerprinting-techniques.md) — Identifies unique browser instances by combining storage locations and system-level artifacts.
- [Persistent User Tracking](https://awesome-repositories.com/f/security-cryptography/persistent-user-tracking.md) — Tracks visitors across sessions by regenerating deleted identifiers using multiple redundant browser storage mechanisms.
- [Regenerative Cookies](https://awesome-repositories.com/f/security-cryptography/session-cookie-handlers/session-cookie-persistences/regenerative-cookies.md) — Regenerates deleted tracking cookies using backup data stored in HTML5, Flash, or Silverlight storage.
- [User Identification Tools](https://awesome-repositories.com/f/security-cryptography/user-identification-tools.md) — Retrieves and synchronizes unique identifiers to track users after they clear their browser history.
- [CSS History Detection](https://awesome-repositories.com/f/security-cryptography/css-history-detection.md) — Identifies previously visited websites by measuring browser cached response times for specific CSS resources.
- [Web History Detection](https://awesome-repositories.com/f/security-cryptography/web-history-detection.md) — Determines which websites a user has visited using CSS-based history lookup techniques. ([source](https://samy.pl/csshack/))

### Web Development

- [Browser Tracking Scripts](https://awesome-repositories.com/f/web-development/browser-tracking-scripts.md) — Implements persistent user identification by mirroring tracking data across multiple browser storage mechanisms.
- [Client-Side Data Mirroring](https://awesome-repositories.com/f/web-development/client-side-data-mirroring.md) — Mirrors unique identifiers across various web storage APIs to ensure they survive manual deletion.
- [Cross-Storage Replication](https://awesome-repositories.com/f/web-development/cross-storage-replication.md) — Synchronizes identifiers across multiple browser storage APIs to ensure tracking redundancy.
- [Identifier Retrieval](https://awesome-repositories.com/f/web-development/identifier-retrieval.md) — Fetches identifiers from all available browser storage locations to determine the most likely valid candidate. ([source](https://samy.pl/evercookie/))
- [Storage Regeneration](https://awesome-repositories.com/f/web-development/storage-regeneration.md) — Implements automatic restoration of deleted identifiers using surviving browser storage sources.
- [Cross-Browser Synchronization](https://awesome-repositories.com/f/web-development/cross-browser-synchronization.md) — Uses shared system-level components or plugins to synchronize tracking data between different installed web browsers.

### Business & Productivity Software

- [Tracking Data Synchronization](https://awesome-repositories.com/f/business-productivity-software/browser-bookmark-management/tracking-data-synchronization.md) — Propagates tracking data between different web browsers on the same machine using shared plugins. ([source](https://cdn.jsdelivr.net/gh/samyk/evercookie@master/README.md))

### Software Engineering & Architecture

- [Storage Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/storage-abstractions.md) — Provides a unified interface to interact with cookies, local storage, and plugin caches through a single abstraction.
