Фингерпринт сенсорного экрана — техника отслеживания в браузере, считывающая navigator.maxTouchPoints и API сенсорных событий для определения того, используете ли вы смартфон, планшет, ноутбук с сенсорным экраном или традиционный ПК — молча, без cookies, одной строкой JavaScript. Посмотрите, что раскрывает ваше устройство прямо сейчас на whatsmy.fyi.
TL;DR
Фингерпринт сенсора использует navigator.maxTouchPoints, конструктор TouchEvent и CSS-медиазапрос pointer для классификации типа устройства. ПК без сенсорного экрана возвращает maxTouchPoints = 0; iPhone возвращает 5; Surface Pro возвращает 10. В сочетании с размерами экрана и pixel ratio этот сигнал надёжно разделяет мобильный и десктопный трафик и вносит измеримую энтропию в полный отпечаток браузера.
Что такое фингерпринт сенсора?
Фингерпринт сенсора — подмножество fingerprinting браузера, нацеленное на сенсорное оборудование устройства. Каждый браузер раскрывает набор JavaScript API, описывающих наличие сенсорного экрана и, если он есть, количество поддерживаемых одновременных точек касания. Эти API разработаны для адаптивных интерфейсов — но также служат сигналом классификации типа устройства без согласия, без хранения данных и без взаимодействия с пользователем.
Ключевые API сенсора
navigator.maxTouchPoints
Свойство возвращает максимальное количество одновременных точек касания, поддерживаемых устройством. Стандартные значения в реальном мире:
0— ПК или ноутбук без сенсорного экрана (мышь/трекпад)1— некоторые устаревшие или базовые сенсорные устройства5— iPhone, большинство Android-телефонов10— iPad, Microsoft Surface, сенсорные ноутбуки
Конструктор TouchEvent
Скрипты проверяют, определён ли TouchEvent в глобальной области видимости. На устройствах без сенсорного экрана он неопределён или выбрасывает исключение при создании экземпляра.
CSS Media Query pointer
Медиазапрос pointer раскрывает тип основного устройства указателя:fine (мышь), coarse (сенсорный экран) или none. Читается через window.matchMedia('(pointer: coarse)').
// Сбор фингерпринта сенсора
function getTouchFingerprint() {
const hasTouchEvent = 'TouchEvent' in window;
const maxTouch = navigator.maxTouchPoints ?? 0;
const pointerType = window.matchMedia('(pointer: coarse)').matches
? 'coarse' // сенсорный экран
: window.matchMedia('(pointer: fine)').matches
? 'fine' // мышь
: 'none';
return {
maxTouchPoints: maxTouch,
hasTouchEvent,
pointerType,
// Комбинация этих значений классифицирует тип устройства
deviceClass:
maxTouch === 0 ? 'desktop'
: maxTouch <= 2 ? 'basic-touch'
: maxTouch <= 5 ? 'phone'
: 'tablet-or-stylus',
};
}Насколько уникален фингерпринт сенсора?
Сам по себе maxTouchPoints обеспечивает скромную энтропию — большинство устройств попадает в одну из нескольких категорий. Его реальная ценность — в том, что он помогает отделить мобильный трафик от десктопного и выявлять несоответствия: браузер, заявляющий User-Agent мобильного телефона, но сообщающий maxTouchPoints = 0, почти наверняка является подделкой или headless.
| Значение maxTouchPoints | Устройство | Примерная доля |
|---|---|---|
| 0 | ПК без сенсора / большинство ноутбуков | ~60% всех браузеров |
| 5 | iPhone / большинство Android | ~30% |
| 10 | iPad / Windows Touch / Surface | ~8% |
| 1–4, 6–9, 11+ | Нестандартные или необычные устройства | <2% |
Кто использует фингерпринт сенсора?
Рекламные технологии и сегментация по типу устройства
Рекламные сети используют maxTouchPoints для разделения мобильного и десктопного трафика без зависимости от строки User-Agent. Мобильные объявления доставляются иначе, чем десктопные; различение типа устройства напрямую влияет на ставки и выбор рекламных блоков.
Обнаружение мошенничества и ботов
Платформы безопасности сравнивают maxTouchPoints с User-Agent и другими сигналами. Headless Chromium, эмулирующий iPhone, но сообщающий нулевые точки касания, немедленно флагируется как бот.
Как защититься?
- Tor Browser: Нормализует
maxTouchPointsи другие сигналы сенсора до стандартных значений. - Brave Browser: Применяет рандомизацию Farbling к чувствительным сигналам сенсора.
- Firefox с
privacy.resistFingerprinting: Нормализует сигналы, связанные с сенсором, среди прочих свойств fingerprinting. - VPN ограничения: VPN не влияет на аппаратное обеспечение сенсора браузера. Проверьте работу VPN на whatsmy.fyi.
Часто задаваемые вопросы
Работает ли фингерпринт сенсора в режиме инкогнито?
Да. Режим инкогнито не меняет сенсорное оборудование устройства. navigator.maxTouchPoints возвращает то же значение в приватном окне.
Можно ли подделать maxTouchPoints?
Технически да — расширения браузера и автоматизированные фреймворки могут переопределять это значение. Но продвинутые системы fingerprinting сравнивают значение с другими сигналами: нереалистичное значение в контексте (например, 20 точек касания) само становится флагом fingerprinting.
Связанные статьи
- Что такое отпечаток браузера? Как сайты отслеживают вас без cookies — полное руководство по всем сигналам отпечатков
- Фингерпринт экрана: разрешение и DPR идентифицируют устройство — как размеры экрана и pixel ratio дополняют данные сенсора
- navigator.platform: устаревший API, который вас отслеживает — другой Navigator API для определения типа устройства



