User agent что это такое
Что такое User Agent (пользовательский агент) браузера?
Ваш браузер отправляет свой пользовательский агент на каждый веб-сайт, к которому вы подключаетесь. Мы уже писали об изменении пользовательского агента веб браузера — но что такое User Agent?
Пользовательский агент (User Agent) — это строка текста, идентифицирующая браузер и операционную систему для веб-сервера. Это звучит просто, но со временем в пользовательских агентах стало много запутанного.
Основы
Когда ваш браузер подключается к веб-сайту, он добавляет поле User-Agent в передаваемые им HTTP заголовки. Содержимое поля пользовательского агента варьируется от браузера к браузеру. Каждый браузер имеет свой собственный, уникальный пользовательский агент. По сути, пользовательский агент — это способ для браузера сказать «Привет, я Mozilla Firefox в Windows» или «Привет, я Safari на iPhone» веб-серверу.
Веб-сервер может использовать эту информацию для обслуживания разных веб-страниц для разных веб-браузеров и разных операционных систем. Например, веб-сайт может отправлять мобильные страницы в мобильные браузеры, современные страницы в современные браузеры и сообщение «Пожалуйста, обновите ваш браузер» для Internet Explorer 6.
Понимание пользовательских агентов
Например, вот пользовательский агент Firefox в Windows 7:
Этот пользовательский агент довольно много говорит веб-серверу: операционная система Windows 7 (кодовое имя Windows NT 6.1), это 64-разрядная версия Windows (WOW64), а сам браузер Firefox 12.
Теперь давайте посмотрим на пользовательский агент Internet Explorer 9, который:
Строка агента пользователя идентифицирует браузер как IE 9 с механизмом рендеринга Trident 5. Однако вы можете заметить что-то непонятное — IE идентифицирует себя как Mozilla.
Мы вернёмся к этому через минуту. Но сначала, давайте также рассмотрим пользовательский агент Google Chrome:
Всё ещё хуже: Chrome притворяется и Mozilla, и Safari. Чтобы понять почему, нам нужно изучить историю пользовательских агентов и браузеров.
Что означает строка пользовательского агента
Mosaic был одним из первых браузеров. Его строка агента пользователя была NCSA_Mosaic/2.0. Позже появился Mozilla (позже переименованный в Netscape), а его пользовательским агентом был Mozilla/1.0. Mozilla был более продвинутым браузером, чем Mosaic — в частности, он поддерживал фреймы. Веб-серверы проверяли, что пользовательский агент содержит слово Mozilla, и отправили страницы, содержащие фреймы, в браузеры Mozilla. В другие браузеры веб-серверы отправляли старые страницы без фреймов.
В конце концов появился Microsoft Internet Explorer, который также поддерживал фреймы. Однако IE не получал веб-страницы с фреймами, потому что веб-серверы просто отправляли их в браузеры Mozilla. Чтобы решить эту проблему, Microsoft добавила слово Mozilla к своему пользовательскому агенту и добавила дополнительную информацию (слово «compatible» и ссылку на IE). Веб-серверы были рады видеть слово Mozilla и отправили IE на современные веб-страницы. Другие браузеры, которые появились позже, делали то же самое.
В конце концов, некоторые серверы искали слово Gecko — движок рендеринга Firefox — и обслуживали браузеры Gecko на иных страницах, чем старые браузеры. KHTML — изначально разработанный для Konquerer на рабочем столе KDE в Linux — добавил слова «как Gecko», чтобы они также получили современные страницы, разработанные для Gecko. WebKit был основан на KHTML — когда он разрабатывался, они добавили слово WebKit и сохранили оригинальную строку «KHTML, like Gecko» в целях совместимости. Таким образом, разработчики браузеров со временем добавляли слова в свои пользовательские агенты.
Использование
Веб-серверы используют пользовательские агенты для различных целей, включая:
Боты для веб-сканирования также используют пользовательские агенты. Например, веб-сканер Google идентифицирует себя как:
Веб-серверы могут предоставлять ботам особый режим — например, позволяя им пропускать необходимость регистрации. (Да, это означает, что иногда вы можете обойти страницы регистрации, установив в своём пользовательском агенте Googlebot.)
Веб-серверы также могут отдавать приказы определенным ботам (или всем ботам) с помощью файла robots.txt. Например, веб-сервер может указать конкретному боту, что он должен уйти, или сказать другому боту, чтобы он индексировал только определённые области веб-сайта. В файле robots.txt боты идентифицируются по строкам пользовательских агентов.
Все основные браузеры содержат способы подмены пользовательских агентов, чтобы вы могли видеть, какие страницы веб-серверы отправляются в разные браузеры. Например, установите в браузере на своём компьютере строку агента пользователя мобильного браузера, и вы увидите мобильные версии веб-страниц на рабочем столе.
Много анонимности не бывает — скрываем User-Agent
Очередной приступ паранойи был вполне обоснован — он наступил после прочтения статьи о методах анонимности в сети, где автор на примере браузера FireFox рассказывал о потенциальных утечках идентификационной информации. И стало интересно — а на сколько озвученные решения применимы, скажем, к браузеру Google Chrome?
Скрыть реальный IP — используем разные VPN сервера, отключить львиную долю отслеживающих скриптов — Adblock Plus и Ghostery, убрать Referer — не вопрос, что то ещё забыли… Ах да — User-Agent — своеобразный «отпечаток», по которому (в связке, скажем, с IP) легко идентифицировать пользователя. И с этим надо было что-то делать. Найденные решения лишь статично изменяли значение User-Agent, чего было явно недостаточно. Тогда и было решено написать плагин для скрытия реального User-Agent’a, а если быть точнее — подменять его на рандомный. Или почти рандомный.
Для нетерпеливых сразу: исходники на GitHub и расширение в Google Webstore.
Немного теории
Вообще, User-Agent (далее по тексту — UA) — штука нужная. Нужная в первую очередь для корректного отображения страниц, ведь нам всем известно — разные версии разных браузеров по разному рендерят странички, и заботливые web-программисты учитывают этот факт, выдавая нужным браузерам нужным скрипты и стили. Разнится поддержка доступных технологий «движками». Отсюда вытекает первое требование к итогу — возможность «имитировать» различные браузеры, и что самое важное — иметь возможность выбора между ними.
UA — это в первую очередь набор. Набор различных идентификаторов, по которым и происходит определение — какой браузер, какая операционная система, какой версии, и какое специфичное ПО (привет, IE) стоит у пользователя.
Почему именно IP и UA надо скрывать в первую очередь? А давайте посмотрим на лог пустого сайта-заглушки, на котором вообще ничего нет:
На сайте ничего нет, а я знаю о посетителе более чем достаточно. Всё потому что «логи знают всё» ©.
Немного практики
История изменений
Что такое User agent и как его изменить
Во время взаимодействия с браузером пользователь может встретить такое понятие, как User agent. Используется технология с таким названием во всех веб-обозревателях.
Далее я предлагаю узнать, что такое User agent, где он используется и какую пользу может принести обычному юзеру.
Понятие User agent
Начать необходимо с расшифровки самого понятия, чтобы сформировалось хотя бы поверхностное знание о нем. User agent – это программный элемент браузера, обозначающий человека, пользующимся им. Обычно он хранится в файле и содержит несколько текстовых строк, которые как раз и необходимы для идентификации. Действие агента пользователя происходит в сети от имени самого юзера, оно идентифицирует браузер и запрашивает доступ к страницам после отправки запроса на сервер.
Файл агента пользователя чаще всего включает в себя сведения о браузере, его версии, используемом устройстве, операционной системе и механизме веб-рендеринга. Разработка User agent позволила избавиться от проблемы, когда конкретные веб-страны могли обрабатывать только определенные браузеры, для которых они и разрабатывались.
Разновидности User Agent
Важно отметить, что каждый тип девайсов, будь то ПК, ноутбук, смартфон или планшет, может иметь своего агента пользователя, а далее все зависит уже от используемого ПО. User Agent идентифицируется:
Веб-обозревателями. Сюда входят все браузеры: Google Chrome, Яндекс.Браузер, Opera и другие.
Поисковыми системами. Яндекс, Google, Рамблер и все остальные поисковики тоже обращаются к веб-страницам, соответственно, имеют свой UA.
Игровыми консолями. Если вы запустили браузер или используете веб-элементы на своем Xbox или PS, устройство тоже выходит в сеть, а далее в дело вступает User Agent.
Мониторами ссылок. Есть специальные ресурсы, предназначенные для проверки ссылок, и, да, они тоже используют эту технологию.
Электронными книжками. Большинство современных моделей имеют на борту Wi-Fi, что позволяет запускать браузер, пускай и для выполнения минимальных задач.
Это список основных продуктов, использующих User Agent, которого вполне достаточно для понимания того, насколько широко используется данный программный механизм и насколько он упрощает взаимодействие с веб-страницами.
Как узнать и изменить User Agent
Чтобы узнать User Agent браузера во время использования ПК или мобильного устройства, не нужно искать какие-то файлы или изучать конфигурации, переходя на страницы по специальным ссылкам. Для выполнения поставленной задачи существуют специальные инструменты, встраиваемые в популярные онлайн-сервисы, которые занимаются сбором и предоставлением определенной информации. Например, известный сайт 2IP, который предназначен для проверки сетевого адреса пользователя, может вывести на экран и текущий User Agent.
Вам нужно только перейти на соответствующую страницу выбранного онлайн-сервиса и прокрутить ее немного вниз, если в первых строках нет необходимой информации. Кстати, если конфигурация браузера была изменена вручную специально для того, чтобы блокировать правильный UA, он не определится при помощи онлайн-сервиса.
Изменение User agent может потребоваться веб-дизайнерам, проверяющим работоспособность сайта на разных устройствах (не надо устанавливать кучу разных браузеров и использовать смартфоны с различными диагоналями – поставили плагин с подменой User agent и переключаетесь между доступными «устройствами»), и пользователям, желающим скрыть информацию о своем ПК и браузере, поскольку благодаря данному программному механизму происходит какой-никакой сбор информации.
Принцип изменения агента пользователя в разных веб-обозревателях отличается, но почти всегда универсальным методом будет использование User-Agent Switcher.
Установите это расширение, откройте главное меню и измените данные в строке на необходимые. Существуют и другие плагины такого рода, которые вы без проблем можете отыскать в магазине расширений используемого браузера.
Уточним, что для Chrome можно использовать более простой метод, связанный с изменением свойств объекта. Для этого щелкните правой кнопкой мышки по ярлыку, который вы используете для запуска программы, из контекстного меню перейдите в его свойства и в поле со ссылкой на объект добавьте:
В этой статье вы узнали, что User agent – крайне полезная функция, которая позволяет с комфортом использовать любые браузеры и другие средства просмотра веб-страниц, не задумываюсь о том, что какой-то сайт может не открыться из-за проблем с совместимостью или его внешний вид не адаптируется под используемое устройство.
Особенности работы с User-agent
Индексация содержимого страниц сайта поисковыми системами происходит при помощи различных поисковых роботов. Все они проводят на сайте определенное время. Поэтому важно, чтобы была проиндексирована вся нужная информация, которая может привлечь посетителей.
Если сайт состоит из большого количества страниц, то целесообразно скрыть от внимания ботов ту информацию, которая не является целью первоначального запроса при поиске информации по теме сайта в интернете. Также на период внесения изменений в тексты или оформление сайта можно скрыть его весь или отдельные страницы от поисковиков. Для того чтобы это сделать, нужно отредактировать файл Robots.txt, расположенный в корневой директории сайта. В нем прописываются строки User-agent – директив, которые задают инструкции ботам поисковых систем при работе с сайтом. Именно их нужно менять, чтобы управлять индексацией.
Что из себя представляет User-agent?
User-agent есть в любом браузере и мобильном устройстве. Эта строка содержит множество сведений о компьютере, операционной системе, версии браузера. Прописанные в файле Robots.txt, строки с описанием User-agent влияют на работу поисковых систем на сайте. С их помощью можно скрыть от поисковиков (от всех или каких-то определённых) находящуюся на сайте информацию – какую-то страницу или весь сайт, конкретный тип файлов. Ограничивая индексацию по типу файлов, к примеру, можно сделать видимыми только картинки, только тексты или, наоборот, исключить из индексации конкретный тип файла.
Ограничение видимости можно прописать для бота конкретной поисковой системы или для всех роботов. Инструкции прописываются для каждого робота, для которого известно написание User-agent.
Из строки, содержащей описание User-agent можно узнать следующие сведения:
Изменение User-agent может понадобиться не только для того чтобы редактировать параметры индексации сайта, но и чтобы скрывать нежелательную для отслеживания информацию: например, вид устройства для аккаунтов Google, VK. Также с помощью редактирования User-agent можно сделать актуальным устаревший браузер, перестать получать предложения об установке того или иного браузера. Изменение данной строки в разных браузерах и устройствах происходит по-своему. Следует искать инструкции для конкретного браузера или типа операционной системы (Android, iOS).
User-agent и поисковые роботы Google
Одной из самых популярных поисковых систем является Google, и этой системой создано множество ботов для индексации различного контента на сайтах и устройств, с которых осуществляется выход в интернет.
Некоторые боты системы:
Основной робот для поисковика Google – это Googlebot. В случае необходимости полной блокировки индексации всего сайта для этой системы, достаточно внести в файл Robots.txt условие, устанавливающее Googlebot агентом пользователя. Тогда для всех ботов компании Google сайт станет невидимым. Можно ограничить видимость определенного контента. Тогда нужно настроить правило для агента, отвечающего за этот контент. Например, сканированием изображений на сайте занимается Googlebot-Image. Запись в файле Robots, где оформляется данная операция, выглядит так:
Disallow: (здесь остается пустое место, так как основному боту ничего не запрещается)
Disallow: /personal (запрет на видимость изображений в личном каталоге для бота, ответственного за контент данного типа).
Можно запретить индексацию всего сайта, но разрешить индексировать конкретный контент, например, видео или размещенную рекламу. К примеру, чтобы разрешить сканировать только видео, основному боту нужно запретить индексацию всего сайта, а в качестве агента, для которого запретов не предусмотрено, указать Googlebot Video.
Бортовой журнал
Полет нормальный. Без происшествий.
User-Agent: визитная карточка веб-приложения
В этой статье мы расскажем о том, что такое User-Agent, для чего он нужен и как с его помощью делать всякие нужные штуки. Эта информация пригодится тем, кто планирует всерьез самостоятельно заняться оптимизацией своего сайта, уделяя особое внимание вопросам безопасности. Вслед за этой статьей появится еще несколько материалов, посвященных оптимизации сайтов, не пропустите.
Итак, User-Agent. В обычной жизни нас с вами можно идентифицировать по разным параметрам: голос и внешность выдают в нас мужчину или женщину, форма — военного или доктора. Помимо таких очевидных, есть ряд прочих критериев, которые позволяют нам определить, с кем имеешь дело, и как именно стоит себя вести в данной ситуации. Похожим образом происходит взаимодействие с сайтами — веб-приложение сообщает данные о себе, а сайт в свою очередь может обрабатывать их различными способами. Эта информация передается в User-Agent, о котором пойдет речь далее.
Что такое User-Agent, какую информацию он передает?
В последние годы использование глобальной сети Интернет стало настолько привычным и даже обыденным, что при открытии какого-либо сайта мы вовсе не замечаем, что первым делом запускаем браузер. А ведь именно он — браузер — является тем приложением, которое позволяет нам видеть сайты красиво оформленными, а не состоящими из набора HTML-тегов и текстовых ссылок. При открытии сайта браузер посылает HTTP-запрос к серверу, который занимается обслуживанием этого сайта, дожидается ответа от сервера и обрабатывает его определенным образом. HTTP-запрос содержит в себе набор информации, из которой стоит выделить метод обработки данных (GET, POST), адрес запрашиваемого ресурса, IP-адрес отправителя, и, собственно, User-Agent.
User-Agent — это текстовая часть запроса, которую веб-приложения используют для сообщения сайту информации о себе. User-Agent браузера содержит название и версию приложения, а также данные об операционной системе компьютера: версия, разрядность, язык по умолчанию и другие параметры. Помимо браузеров User-Agent есть у утилит (Wget и cURL) и поисковых роботов — обычно в них содержится имя робота и ссылка на ресурс, регламентирующий его работу.
Ниже рассмотрены различные варианты User-Agent с расшифровкой тех данных, на которые следует обратить внимание.
Браузеры ПК на примере Mozilla Firefox 36 (Win 8.1 x64):
Mozilla/5.0 (Windows NT 6.3; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0
Windows NT 6.3 — вид и версия операционной системы компьютера, на котором установлен браузер.
Firefox/36.0 — имя браузера и его версия.
Мобильные браузеры на примере Android 2.3.5 (Philips W632):
Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ru; Philips W632 Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Linux — тип операционной системы (семейство Linux).
Android 2.3.5 — название операционной системы и ее версия.
ru-ru — язык на мобильном устройстве по умолчанию.
Philips W632 Build/GRJ90 — название и версия мобильного устройства, на котором установлен браузер.
Поисковые системы на примере роботов Яндекс:
Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
YandexBot/3.0 — имя и версия робота.
http://yandex.com/bots — ссылка на ресурс, содержащий справку о работе робота.
Утилиты на примере wget (Linux):
Wget/1.15 — название и версия программного обеспечения.
Как узнать, от каких User-Agent поступают запросы к вашему сайту?
Информация о поступающих запросах хранится в виде журналов работы веб-сервера. Вы можете включить сохранение журналов веб-сервера в Панели управления аккаунтом хостинга. Перейдите в раздел «Дополнительно» → «Журналы веб-сервера», отметьте домен сайта и нажмите на кнопку «Включить». После этого журналы веб-сервера начнут сохранятся в папке /logs, находящейся в директории сайта, в указанном примере это директория domains/user-agent.01sh.ru/logs.
Информация о каждом запросе хранится в журнале отдельной строкой, например:
[u][26/Oct/2016:12:42:08 +0300] 0.350 0.350 200 77.88.99.00 sprinthost.ru GET / HTTP/1.1 «Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36» «-» 6756
Разберем подробнее те части записи, которые нас интересуют в контексте статьи.
77.88.99.00 — IP-адрес, с которого поступил запрос.
sprinthost.ru — имя сайта, к которому было направлено обращение.
«Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36» — тот самый User-Agent браузера, который обращался к сайту.
Зачем сайту знать, с каким User-Agent к нему пришли?
Как видно из приведенных выше примеров, по User-Agent очень просто определить, откуда пришел запрос — это может быть компьютер, планшет, мобильное устройство, поисковый робот или некое программное обеспечение.
Информация об источнике запроса может быть необходима для решения следующих задач:
Значительная часть перечисленных задач требует опыта разработки скриптов на PHP, но не стоит пугаться — для большинства популярных CMS уже существуют расширения, обладающие необходимыми функциями, и вам достаточно найти подходящий плагин или модуль, чтобы получить желаемый результат.
Мы же подробнее разберем ситуацию, когда требуется запретить доступ к сайту по User-Agent. Чаще всего это необходимо для исключения из индексации поисковыми роботами файлов из определенной директории, блокировки нежелательных роботов, создающих нагрузку на сайте, или же обеспечения безопасности, если к сайту поступает множество подозрительных запросов с различных IP-адресов, но с одинаковым User-Agent.
Как запретить доступ к сайту по User-Agent?
Рассмотрим пример, в котором используются правила, запрещающие доступ к сайту с использованием утилиты wget:
В первой строке после параметра User-Agent в кавычках указан User-Agent утилиты Wget, которому присваивается имя bad_bot. Во второй строке указывается необходимость блокировки доступа (Deny) для запроса, пришедшего от bad_bot.
Вместо «^Wget» может быть указан User-Agent любого браузера или робота, имя bad_bot может быть присвоено любому количеству User-Agent, то есть правила
запретят доступ для всех перечисленных User-Agent.
Чтобы убедиться в том, что изменения внесены успешно, вовсе не обязательно искать большое количество различных устройств для проверки работы сайта — гораздо удобнее воспользоваться встроенными почти во все современные браузеры функциями подмены User-Agent.
Как заменить User-Agent браузера?
Обычно замена User-Agent применяется, чтобы проверить правила для роботов и утилит.
Не секрет, что каждый из браузеров при формировании страницы сайта обрабатывает полученные с сервера данные особым образом. Соответственно, если в браузере Firefox указать User-Agent браузера Chrome, результат отображения сайта может быть совершенно неожиданным. Об этом обязательно следует помнить. Всегда возвращайте исходное значение User-Agent после завершения тестирования.
Инструкция по замене User-Agent в Mozilla Firefox (для версий 34.0 и выше)
Наберите в адресной строке вашего браузера следующую фразу:
и нажмите Enter. Если появится сообщение о том, что надо быть осторожным, нажмите кнопку «Я обещаю, что буду осторожен!». После откроется список множества настроек, а также строка поиска. Введите в эту строку:
Вам необходимо убедиться, что параметра general.useragent.override не существует. Для создания этого параметра кликните правой кнопкой мыши по пустому месту и выберите пункт «Создать (New)», затем «Строка (String)». Введите имя этой строки general.useragent.override, нажмите «ОК». Затем потребуется ввести значение этой строки, которое и будет использоваться в качестве нового User-Agent, и нажать «ОК». К примеру, если вы хотите заменить значение на User-Agent утилиты Wget, после создания строки с именем general.useragent.override укажите в качестве ее значения:
Новое значение должно появится в списке параметров. Перезапускать Mozilla Firefox не требуется.
Инструкция по замене User-Agent в Google Chrome (для версий 26.0.1410.64 и выше)
Чтобы указать для Google Chrome нестандартный User-Agent, его необходимо запустить с ключом
и в кавычках указать новую строку User-Agent.
Например, в ОС Windows это можно сделать, нажав сочетание клавиш Win+R и вписав в поле «Открыть» команду:
где вместо MyBrowser должен быть указан нужный вам User-Agent.
Например, чтобы присвоить Google Chrome значение User-Agent консольного браузера Links, следует ввести в поле «Открыть» строку
и нажать на кнопку «ОК».
После этого открывшееся окно браузера будет иметь не стандартный, а заданный User-Agent. Чтобы проверить текущее значение User-Agent, можно ввести в адресной строке:
Информацию о том, как изменить User-Agent других браузеров, можно найти в их документации.