info@bot-guard.ru

User-Agent: пропускать или блокировать?

Какие User-Agent пропускать на сайт, а какие блокировать: полное руководство для веб-разработчиков и админов

В 2025 году трафик на сайты стал ещё более разнообразным: миллиарды устройств, тысячи браузеров, миллионы ботов. User-Agent (UA) — это строка, которую браузер отправляет серверу в HTTP-заголовке, рассказывая о себе: ОС, версия браузера, устройство. Но не все UA одинаково полезны. Некоторые — реальные пользователи, которых нужно пускать и радовать. Другие — боты, сканеры уязвимостей или фрод, которых лучше блокировать сразу.

В этой статье разберём по полочкам: как анализировать UA, какие пропускать, какие блокировать, как выявлять подделки и почему это важно для безопасности, производительности и SEO. Приведу реальные примеры из логов 2025 года.

Почему User-Agent вообще важен?

  • Безопасность: старые браузеры — дыры для RCE-эксплойтов.
  • Производительность: древние устройства не тянут тяжёлый JS.
  • SEO: Google штрафует за уязвимый контент и плохой Core Web Vitals.
  • Фрод: 40% кликфрода идёт со старых Android-устройств (данные Cloudflare 2025).
  • Статистика: в рунете 70% мобильного трафика — устройства 2019–2022 годов.

Блокировать всех подряд нельзя — потеряете аудиторию. Нужно умный фильтр.

Как правильно разбирать User-Agent

UA состоит из частей:

Mozilla/5.0 (ОС; архитектура; версия Android; модель) AppleWebKit/xxx (KHTML, like Gecko) Браузер/версия Доп.инфо

Ключевые маркеры:

  • Версия ядра (Chrome/XXX, Firefox/XXX, Version/4.0).
  • Флаги: wv — WebView (часто старый), SA/3 — Lite.
  • Модель устройства — если указана точно (Redmi Note 8T), скорее реальный.
  • Локаль (ru-ru) — подсказка о регионе.

Инструменты для анализа:

  • Библиотеки: ua-parser-js, uap-python.
  • Онлайн: whatismybrowser.com, useragentstring.com.

Реальные пользователи: кого пускать без вопросов

Это 95% вашего трафика. Признаки:

  • Актуальное ядро ≥ Chrome 110 / Firefox 115 / Safari 16.
  • ОС не старше 3 лет (Android ≥ 11, iOS ≥ 15, Windows ≥ 10).
  • Устройство тянет современный веб (≥ 4 ГБ ОЗУ).

Примеры хороших UA (пускать!):

  1. Яндекс Браузер Lite на Mi 10T Lite
    Mozilla/5.0 (Linux; arm_64; Android 13; M2101K6G) AppleWebKit/537.36 ... Chrome/116.0.5845.80 YaBrowser/23.9.2.80.00 SA/3 ...

    Android 13, Chromium 116 (ещё живой), реальное устройство. 15% трафика в рунете.

  2. Chrome на Mi Note 10 Lite
    Mozilla/5.0 (Linux; arm_64; Android 12; Mi Note 10 Lite) ... Chrome/114.0.4785.103 ...

    Android 12 (патчи до октября 2025), полноценный Chrome. Премиум-середнячок.

  3. Chrome на Redmi Note 8T с MIUI-браузером
    Mozilla/5.0 (Linux; U; Android 10; ru-ru; Redmi Note 8T ...) Chrome/116.0.0.0 ... MiuiBrowser/12.13.0-gn

    Да, Android 10 старый, но ядро 116 — максимум для этого телефона. 2,5% трафика в СНГ.

Такие юзеры — ваша основная аудитория. Оптимизируйте под них: WebP/AVIF, lazy-load, < 1 МБ бандл.

Устаревшие User-Agent: мягко предупреждать или блокировать

Это устройства 5+ лет. Проблемы:

  • Дыры в безопасности.
  • Тормоза на современном JS.
  • Часто источники фрода (Африка, ЮВА).

Примеры плохих UA (блокировать с предупреждением):

  1. VivoBrowser на Vivo Y15
    Mozilla/5.0 (Linux; Android 11; vivo 1906; wv) ... Chrome/87.0.4280.141 ... VivoBrowser/8.9.0.0

    Ядро 87 (2020 год!). 4 года без патчей. 3% трафика из Индонезии — 70% фрод.

  2. Chrome 94 на TECNO Spark 8
    Mozilla/5.0 (Linux; Android 11; TECNO KG5n) ... Chrome/94.0.4606.85 ...

    2 ГБ ОЗУ, Helio P22, ядро 2021 года. Главный источник кликфрода в Африке.

  3. Firefox 108 на Windows 7
    Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0

    ОС без патчей 5 лет, браузер — 2 года. Офисы в СНГ.

Рекомендация: показывать баннер "Обновите браузер" или редирект на статичную версию.

Поддельные User-Agent: 100% блокировать без разговоров

Боты подделывают UA, чтобы обойти защиту. Признаки подделки:

  • Несоответствие: старое ядро + новая модель.
  • Пустые/общие строки: "Mozilla/5.0" без деталей.
  • Редкие комбинации: Firefox 4 на Windows 7.
  • Массовые сканеры: меняют UA, но IP один.

Примеры поддельных UA (блокировать сразу):

  1. Древний Firefox — классика сканеров
    Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0) Gecko/20100101 Firefox/4.0

    Firefox 4.0 — 2011 год! 99,9% таких — ZMap, Masscan, старые эксплойт-паки. Легитимных пользователей 0 с 2014 года.

  2. Пустой или generic
    Mozilla/5.0

    Или

    Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

    Но приходит не с IP Google — подделка.

  3. Несоответствие версий
    Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 ... Chrome/89.0...

    Pixel 8 на Android 14 не может иметь Chrome 89 (2021). Это бот притворяется новым устройством.

Как используются подделки:

  • Сканеры уязвимостей: ищут SQLi, XSS, отправляя старые UA.
  • Кликфрод/спам: имитируют пользователей из бедных стран.
  • Парсеры: Scrapy/Yandex.Tank подделывают UA для обхода rate-limit.
  • DDoS: инструменты типа MHDDOS меняют UA каждые 10 запросов.

Правила блокировки: готовый чек-лист

Пускать (зелёный список):

  • Chromium ≥ 110
  • Android ≥ 11 + не WebView
  • iOS ≥ 15
  • Windows 10+ / macOS 12+
  • Яндекс/Chrome/Edge/Firefox актуальные

Предупреждать (жёлтый):

  • Chromium 100–109
  • Android 10–11 с wv
  • Windows 10 + старый Edge

Блокировать (красный):

  • Chromium < 100
  • Firefox < 115 ESR
  • Vivo/Oppo/Realme Browser
  • Windows 7/8 (NT 6.x)
  • Любые UA старше 2018 года
  • Подозрительные комбинации (проверка через ua-parser)

Код для блокировки

Nginx:

if ($http_user_agent ~* "(Chrome/[0-9][0-9]\.|Chrome/10[0-3]\.|VivoBrowser|Firefox/[0-9]\.|Windows NT 6\.)") {
    return 403;
}

JS на клиенте:

if (/Chrome\/9[0-9]\./.test(navigator.userAgent) || /wv/.test(navigator.userAgent)) {
    location.href = '/update-browser.html';
}

Заключение: безопасность важнее 5% трафика

В 2025 году блокировать старые/поддельные UA — не прихоть, а необходимость. Вы защищаете не только сайт, но и пользователей от drive-by атак. Потеряете 3–7% "зомби-трафика" из Африки/ЮВА — получите +15% к производительности и меньше жалоб в поддержку.

Начинайте с логов: соберите топ-100 UA за месяц, разберите через ua-parser, настройте WAF (Cloudflare, Fastly). И помните: хороший сайт — это сайт, который работает для живых людей, а не для ботов из 2011 года.

Если у вас есть свои примеры UA — кидайте в комментарии, разберём вместе!