Cloned Boy
Professional
- Messages
- 876
- Reaction score
- 697
- Points
- 93
Фингерпринтинг браузера — это технология идентификации устройств на основе уникальной комбинации параметров. Вот полный список данных, которые могут собираться для создания цифрового отпечатка:
Для глубокого изучения:
Хотите разобрать конкретный метод (например, как работает AudioContext в отпечатке)? Или интересуют легальные альтернативы для анонимности?
1. Основные параметры браузера
Категория | Конкретные данные | Пример значения |
---|---|---|
User Agent | Браузер, версия, ОС, тип устройства. | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 |
Язык | Предпочитаемый язык системы. | ru-RU, en-US |
Временная зона | Часовой пояс. | Europe/Moscow |
Разрешение экрана | Ширина × высота (включая внутреннее окно браузера). | 1920×1080 → 1848×984 (с учётом масштабирования). |
2. Расширенные параметры
2.1. Графические и аппаратные данные
- WebGL:
- Рендеринг графики (характеристики GPU, модель видеокарты).
- Пример: ANGLE (NVIDIA GeForce RTX 3080 Direct3D11 vs_5_0 ps_5_0).
- Canvas:
- Скрытое изображение, отображаемое с небольшими различиями на разных устройствах.
- Пример хэша Canvas: a1b2c3d4e5....
- WebGL Vendor/Renderer: Производитель GPU и драйверов (Intel Inc. vs NVIDIA Corporation).
2.2. Шрифты
- Список установленных шрифтов (через document.fonts).
- Пример: Arial, Times New Roman, Calibri, ... (до 50+ шрифтов).
2.3. Аудиоконтекст
- Анализ обработки звука (AudioContext.getOutputTimestamp()).
- Даже одинаковые устройства могут давать микроскопические различия.
3. Сетевые и протокольные данные
Параметр | Как используется |
---|---|
IP-адрес | Не всегда уникален (NAT, VPN), но важен для геолокации. |
HTTP-заголовки | Accept-Language, Sec-CH-UA (User Agent Client Hints). |
Куки и хранилище | Наличие/отсутствие localStorage, sessionStorage. |
4. Поведенческие метрики
- Тайминги: Скорость выполнения JavaScript-кода.
- Паттерны скролла/кликов: Как пользователь взаимодействует с страницей.
- Мышь/тачскрин: Ускорение движения курсора, сила нажатия.
5. Пример кода для сбора данных (легальный)
JavaScript:
// Проверка WebGL
const canvas = document.createElement('canvas');
const gl = canvas.getContext('webgl');
console.log(gl.getParameter(gl.VENDOR)); // "NVIDIA Corporation"
// Список шрифтов (не все браузеры разрешают)
const fontList = [];
for (const font of document.fonts) {
fontList.push(font.family);
}
console.log(fontList);
// Canvas fingerprinting
const canvasFingerprint = () => {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
ctx.fillText('Hello, Fingerprint!', 10, 10);
return canvas.toDataURL();
};
console.log(canvasFingerprint());
6. Как защититься от фингерпринтинга?
Для пользователей:
- Браузеры с защитой:
- Firefox (включить resistFingerprinting в about:config).
- Brave (блокирует Canvas API по умолчанию).
- Расширения:
- CanvasBlocker (подмена Canvas-данных).
- Chameleon (маскировка User Agent).
Для разработчиков:
- Используйте User Agent Client Hints вместо navigator.userAgent.
- Минимизируйте сбор данных (соответствие GDPR).
7. Как сайты используют эти данные?
- Антифрод (банки, платежи):
- Если у пользователя резко меняется WebGL или Canvas → подозрение.
- Персонализация рекламы:
- Таргетинг без куки (Google FLoC, теперь Topics API).
- Борьба с ботами:
- Боты не могут точно эмулировать аппаратные параметры.
Вывод
Фингерпринтинг включает десятки параметров — от User Agent до поведения мыши. Полностью избежать его невозможно, но защитные инструменты снижают точность идентификации.Для глубокого изучения:
- Документация W3C по User Agent Client Hints.
- Исследования Electronic Frontier Foundation (EFF) о Panopticlick.
Хотите разобрать конкретный метод (например, как работает AudioContext в отпечатке)? Или интересуют легальные альтернативы для анонимности?