Браузеры практически обязательно хранят внутри себя огромный объём информации о своих пользователях. Например, это могут быть сохранённые пароли, кешированные данные сайтов (скрипты, картинки, видео и т.п.), история просмотров, закладки, куки и прочее.
Всё это нужно для определённых технических задач, но в первую очередь – для удобства самого пользователя: ему нужно реже авторизовываться в любимых сайтах и сервисах, страницы могут грузиться быстрее, пароли не нужно запоминать, под рукой всегда доступен список любимых или часто посещаемых сайтов.
Вместе с тем, эти же данные могут использоваться и для других целей, например, для идентификации пользователя, чтобы потом ему можно было предложить персонализированную рекламу, а также для отслеживания его действий в сети (какие сайты он посещает, что покупает или заказывает, какие у клиента интересы и прочее).
Браузерный профиль – это полноценный цифровой отпечаток. Многие крупные сайты используют цифровые отпечатки для отсева паразитного трафика.
Давайте разберёмся во всём этом более детально, а главное, выясним, как связаны между собой цифровые отпечатки и процесс парсинга, а также – можно ли обойти процесс проверки браузерных профилей.
Почему и зачем сайты изучают цифровые отпечатки пользователей
Простой пример для наглядности – разрешение экрана, локаль и версия браузера. На основе разрешения экрана веб-сервер может выдать клиенту отдельную версию сайта (для десктопов или для мобильных), на основе локали активируется тот или иной перевод интерфейса, а версия браузера используется для более качественной отрисовки оформления (CSS-стилей).
Точно также используется IP-адрес клиента, на его основе можно подобрать ближайший сервер кеширования (если используется CDN), тогда даже очень крупный и сложный web-сервис будет отрабатывать и загружаться максимально быстро.
Сайт может получить доступ к версии операционной системы, к набору шрифтов и ко многим другим параметрам устройства, например, на мобильных гаджетах могут задействоваться аппаратные датчики и сенсоры.
Круто? Да, но только если всё это используется по прямому назначению – для повышения комфорта пользователя. Но это не всегда бывает так. Веб-сайты и специальные системы мониторинга могут использовать данные о пользователях и в других целях:
- Скрытая идентификация клиента (даже если пользователь ничего и никуда не вводил, а просто посетил сайт, сервер уже может персонализировать контент или рекламу).
- Тотальная слежка за действиями пользователя – какие пароли куда он вводит, данные его карт, расположение, пол, возраст, интересы. Всё это можно использовать в своих интересах (не нужно тешить себя надеждой, что вы или ваши данные никому не нужны).
- Слежение за сайтами конкурентов (на основе анализа cookies).
- Выявление ботов и аномального поведения посетителей. На основе этого принимается решение о блокировке или об иных санкциях (что, собственно, существенно усложняет процесс парсинга).
- Организация партнёрских программ (когда сайт может отследить и посчитать всех, кого смогли перенаправить к нему партнёрские сайты).
Некоторые сайты создаются злоумышленниками и могут перехватывать (похищать) элементы цифровых отпечатков, чтобы в дальнейшем перепродать их (существуют даже специальные маркеты или сервисы цифровых отпечатков). Плюс, отпечатки используют для определённых типов атак, например, с подменой cookies.
Влияние методов снятия цифровых отпечатков на скрапинг (парсинг)
Цифровой отпечаток – это набор параметров пользователя, по которым его можно идентифицировать или отследить в сети. Чаще всего под цифровым отпечатком подразумевается браузерный профиль.
Профиль браузера – это набор параметров, которые браузер может передать удалённому серверу в процессе HTTP/HTTPS-подключения.
Например, к браузерному профилю могут относиться:
- Версия операционной системы и браузера (это так называемый user-agent).
- Тип и разрядность процессора, его модель (набор доступных инструкций).
- Модель графического ускорителя.
- Объём оперативной памяти.
- Разрешение экрана.
- Набор установленных браузерных плагинов.
- Cookies-файлы.
- Набор закладок.
- Локаль (язык браузера).
- Часовой пояс.
- Список доступных шрифтов.
- Доступные медиаустройства (камера, микрофон, динамики/колонки).
- Поддерживаемые технологии (исполнение JavaScript, поддержка рендеринга WebGL, HTML5 Canvas и др.).
- Георасположение (обычно определяется на основе IP-адреса).
Отдельные сайты могут использовать сканирование браузерных отпечатков, включающее анализ естественных шумов, снимаемых с микрофона, а также проверять подвижность изображения на встроенной камере.
Раньше мы уже писали о том, какие существуют практики, снижающие риск блокировки при парсинге данных.
Например, в особо сложных ситуациях следует использовать безголовые (headless) браузеры или даже скрапинг экранов (с распознаванием скринов).
Но одно дело понимать, что такое цифровой отпечаток или браузерный профиль, а другое – использовать эти данные в реальных ситуациях.
Наиболее простые примеры сканирования цифровых отпечатков на сайтах:
- Сервер проверяет доступность JavaScript и анализирует движение курсора. Если браузер клиента «молчит», то с большой вероятностью браузером пользуется бот.
- Сайт проверяет версию операционной системы и набор доступных шрифтов. Если операционная система обозначена, как Windows, то она обязательно должна включать в комплект поставки набор стандартных проприетарных шрифтов. Но если в списке доступных отдельных шрифтов нет, то скорее всего браузер пытается кого-то обмануть. Соответственно, пользователь и его подключения блокируются.
- Анализируется структура HTTP-запросов и ответов браузера. Определённые конструкция легко могут выдать использование антидетект-браузеров (конечно, качественные антидетекты умеют маскироваться правильно).
- У сайта может быть своя база известных ему браузерных отпечатков. Каждый новый клиент проходит определённую проверку на валидность. Если браузер пытается авторизоваться в одном аккаунте, но его реальный цифровой отпечаток (браузерный профиль) говорит о соотнесении с другим клиентом, то система защиты может попросить пользователя пройти дополнительные шаги идентификации (задействовать второй фактор аутентификации, ответить на секретный вопрос и т.п.).
Вывод таков: если вы хотите парсить сайты конкурентов или собирать данные с крупных площадок, таких как Amazon, eBay и т.п., то нужно позаботиться о цифровых отпечатках своего браузера (парсера).
Как обойти сканирование цифрового отпечатка в браузере при парсинге?
Веб-парсинг – это не всегда зло. Чаще всего за автоматическими запросами стоят простые и вполне мирные задачи: поиск данных, мониторинг цен, анализ конкурентов, выбор ниши, проверка контрагентов и т.п.
Защита браузерных отпечатков и предварительное сканирование – это как борьба добра со злом. Одни хотят защитить свои личные данные (браузерные профили, цифровые отпечатки) или обойти другие ограничения сайтов/web-сервисов, а другие хотят знать о клиентах всё, чтобы лучше продавать или, наоборот, чтобы блокировать паразитную (по их мнению) нагрузку.
И единственно правильной позиции по этому вопросу нет и быть не может. Каждый может оказаться по разные стороны баррикады.
Итак, проблемы парсинга ясны: из-за проверки цифровых отпечатков (браузерных профилей), собирать данные в автоматическом режиме становится сложнее. Сайты могут проверить большое количество параметров клиента и при малейшем подозрении заблокировать его.
Какие способы обхода существуют:
- Для каждого нового аккаунта, создаваемого на целевом сайте, генерируется уникальный браузерный профиль (с эмуляцией всех возможных параметров, от версии операционной системы и набора шрифтов до файлов cookies и списка установленных плагинов).
- Чтобы обслуживать большое количество изолированных браузеров или браузерных профилей можно использовать среды виртуализации (виртуальные машины и контейнеры), а также специальные браузеры – антидетект-браузеры. Последние умеют подделывать практически любые параметры, которые запрашивают целевые сайты.
- Ни виртуальные машины, ни антидетект-браузеры не умеют подменять местоположение клиента. Для этой задачи нужно использовать прокси. Подбор прокси должен основываться на параметрах потенциального клиента, то есть адрес должен коррелировать с цифровым отпечатком. Например, если используется разрешение экрана смартфона, то и IP-адрес должен принадлежать мобильному оператору связи (подробнее о мобильных прокси). Если браузер имеет разрешение десктопа, то логично задействовать IP-адреса домашних пользователей (резидентные прокси). Если локаль клиента ru_RU, то и работать он должен из России. И т.п.
- Так как многие крупные сайты параллельно проверяют поддержку определённых web-технологий, в том числе JavaScript, то при автоматизации задач следует задействовать специальные браузеры, способные эмулировать поведение пользователей (движение указателей, ручной ввод в формах и т.п.). Всё это умеют делать headless-браузеры.
Выводы и рекомендации
Сайты, особенно, если за ними стоит работа крупных IT-команд, научились вычленять ботов и автоматически генерируемый трафик, чтобы блокировать его и снижать расходы на свой хостинг.
Для отсева реальных клиентов от нереальных чаще всего используются цифровые отпечатки (параметры браузерных профилей).
Но для каждого действия всегда найдётся противодействие. Программы-парсеры можно научить имитировать поведение пользователей и подделывать большинство параметров тех самых цифровых отпечатков. Для этого обычно используются headless или антидетект-браузеры в связке с прокси.
Прокси – крайне важный элемент, который берёт на себя задачу изменения местоположения и защиты реальных IP-адресов (на случай блокировок).
Мы, команда Froxy, предлагаем качественные мобильные и резидентные прокси с оплатой за пакеты трафика. Ротация IP возможна по требованию или по таймеру. Подбор новых адресов может осуществляться в той же локации (до уровня города) и даже у того-же оператора связи, что существенно снижает риски блокировки. Пул адресов включает более 8 млн. IP в 200+ странах.