Фингерпринт сенсора: сенсорный экран идентифицирует браузер
Браузер и устройство

Фингерпринт сенсора: сенсорный экран идентифицирует браузер

Фингерпринт сенсорного экрана считывает maxTouchPoints и TouchEvent для определения типа устройства — сигнал, который невозможно заблокировать cookies.

7 мин чтения·

Фингерпринт сенсорного экрана — техника отслеживания в браузере, считывающая 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% всех браузеров
5iPhone / большинство Android~30%
10iPad / 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.

Связанные статьи

Проверьте свой IP-адрес, местоположение и оценку конфиденциальности — мгновенно.

Без логов. Без слежки. Без внешних API.

Запустить проверку →

Похожие статьи

Фингерпринт сенсора: сенсорный экран идентифицирует браузер | whatsmy.fyi