User-Agent
**User-Agent** — это **HTTP-заголовок**, который браузер (или другое клиентское приложение) отправляет серверу при запросе веб-страницы. Он содержит **информацию о клиенте**: браузере, версии, операционной системе, устройстве и других характеристиках. --- ### Формат (общий вид): ``` User-Agent: <продукт> / <версия> <комментарии в скобках> <дополнительные токены> ``` Пример: ``` Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 ``` --- ## Основные компоненты User-Agent | Часть | Описание | Пример | |------|---------|--------| | **Mozilla/5.0** | Историческая **маскировка** (все браузеры используют) | `Mozilla/5.0` | | **(платформа)** | Информация об ОС и устройстве в скобках | `(Windows NT 10.0; Win64; x64)` | | **Движок** | Рендеринговый движок | `AppleWebKit/537.36` | | **(KHTML, like Gecko)** | Дополнительные обманки | `(KHTML, like Gecko)` | | **Браузер/версия** | Название и версия клиента | `Chrome/134.0.0.0` | | **Safari/…** | Маскировка под Safari | `Safari/537.36` | --- ## Типы User-Agent | Тип | Пример | Назначение | |-----|--------|----------| | **Браузер (настольный)** | `Chrome/134.0.0.0` | Обычный пользователь | | **Браузер (мобильный)** | `Mobile Safari/537.36` | Смартфон/планшет | | **Бот / краулер** | `Googlebot/2.1` | Поисковая индексация | | **Библиотека / скрипт** | `Python-urllib/3.8` | Автоматизация | | **Устаревший / поддельный** | `MSIE 6.0` | Боты, сканеры, malware | --- ## Как выглядит **реальный** User-Agent в 2025 году ### Google Chrome (Windows 11) ``` Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 ``` ### Firefox (macOS) ``` Mozilla/5.0 (Macintosh; Intel Mac OS X 14.7; rv:131.0) Gecko/20100101 Firefox/131.0 ``` ### Safari (iPhone) ``` Mozilla/5.0 (iPhone; CPU iPhone OS 18_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Mobile/15E148 Safari/604.1 ``` ### Googlebot ``` Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) ``` --- ## Зачем нужен User-Agent? | Цель | Пример | |------|--------| | **Адаптация контента** | Показать мобильную версию сайта | | **Аналитика** | Статистика: Chrome 60%, Firefox 25% | | **Безопасность** | Блокировать ботов, устаревшие браузеры | | **Совместимость** | Отправить старую версию CSS для IE | --- ## Проблемы и мифы | Миф | Реальность | |-----|------------| | «User-Agent всегда правдив» | **Ложь** — легко подделать | | «По UA можно точно определить устройство» | **Частично** — только ориентир | | «Боты не используют UA браузеров» | **Ложь** — большинство маскируются | --- ## Как **подделать** User-Agent (примеры) ### cURL ```bash curl -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" https://example.com ``` ### Python (requests) ```python headers = {'User-Agent': 'Mozilla/5.0 (Linux; Android 12)'} requests.get(url, headers=headers) ``` ### Браузер (DevTools) 1. F12 → Network → Щелчок по запросу → Headers 2. Найти `User-Agent` → изменить через **Override** --- ## Как **проверить** User-Agent на сервере ### NGINX ```nginx if ($http_user_agent ~* "bot|crawler|spider") { return 403; } ``` ### PHP ```php $user_agent = $_SERVER['HTTP_USER_AGENT']; if (strpos($user_agent, 'Chrome') !== false) { echo "Это Chrome"; } ``` ### JavaScript ```js console.log(navigator.userAgent); ``` --- ## Рекомендации (2025) | Действие | Почему | |--------|--------| | **Не полагайтесь только на UA** | Используйте **Client Hints**, **feature detection** | | **Блокируйте устаревшие версии** | IE, Firefox < 100, Chrome < 110 | | **Разрешайте известных ботов** | Googlebot, Bingbot, YandexBot | | **Логируйте подозрительные UA** | `MSIE`, `Firefox/2.0`, `Python-urllib` | | **Используйте Client Hints** | `Sec-CH-UA`, `Sec-CH-UA-Platform` | --- ## Полезные ссылки - [MDN: User-Agent](https://developer.mozilla.org/ru/docs/Web/HTTP/Headers/User-Agent) - [WhatIsMyBrowser.com](https://www.whatismybrowser.com/) — парсер UA - [DeviceAtlas](https://deviceatlas.com/) — база устройств - [Client Hints](https://developer.chrome.com/docs/privacy-security/client-hints/) --- **Итого**: **User-Agent — это визитная карточка клиента.** Используйте с умом, но **не доверяйте слепо**.