Что такое user agent в iptv

Опубликовано: 22.04.2024

User-Agent

  • Total 9
  • 1
  • 0
  • 8

User Agent – это клиентское приложение, используемое браузерами и прочими веб-приложениями для показа сайту информации о себе в соответствующей строке.

Для чего нужен и из чего состоит User Agent?

Все браузеры, мобильные устройства, поисковые роботы содержат Юзерагент. В строке отображается вся необходимая информация о компьютере или телефоне, версии браузера, операционной системе, роботе.

Так же строки с описанием User-agent можно прописать в файле Robots.txt, они важны для корректной работы поисковых роботов на сайте. Посредством строк, от всех либо от определенных поисковиков можно скрыть данные, содержащиеся на ресурсе: конкретную страницу либо сайт целиком, определенный вид файлов, личные данные пользователей и прочее. Так, с помощью User-agent, вы можете скрыть, например, только картинки, либо открыть для индексации исключительно их.

Запретить сканировать информацию можно посредством инструкции либо всем ботам, либо роботу конкретного поисковика, распознающегося User Agent.

В строке с описанием User Agent содержится следующая информация:

  1. Название и версия браузера.
  2. Язык.
  3. Версия операционной системы.
  4. Программное обеспечение, установленное на используемом устройстве.
  5. Тип устройства, с которого пользователь зашел на сайт.

Менять Юзерагент можно с целью изменения параметров индексации ресурса, скрытия информации, которую не стоит показывать посторонним лицам, и актуализации старого браузера, чтобы больше не получать уведомления о необходимости установки другого приложения.

Для каждого браузера и операционной системы устройства в строке прописываются разные инструкции.

Как определить User Agent?

Данные о запросах, поступающих на сайт, вы можете найти в виде логах сервера. Функцию сохранения журналов сервера можно включить в Панели управления аккаунтом хостинга.

Включение логов сервера

В дальнейшем журналы сервера можно будет найти в директории сайта domains, а именно в папке логов logs.

Каждая строка содержит информацию об одном конкретном запросе. К примеру:

  • 55.22.33.11 – IP адрес устройства, с которого пришел запрос
  • imajor.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 хранятся в базе данных browscap.org. Если данную строку найти в базе, то вы получите множество параметров, таких как название и версия веб-браузера, операционная система и многое другое. База Юзерагент регулярно обновляется и ее можно скачать на сайте browscap.org совершенно бесплатно.

Зачем сайту знать с каким User-Agent к нему пришли?

Как вы уже поняли, строка Юзерагент помогает узнать, откуда был сделан запрос на сайт. Это может сделать компьютер, смартфон, робот поисковой системы или программное обеспечение. Знать данную информацию нужно, чтобы:

  • перенаправить запрос со смартфона на мобильную версию сайта;
  • применить соответствующие стили для определенного браузера;
  • заблокировать доступ к ресурсу различным утилитам;
  • собрать статистику о том, сколько запросов с каких устройств приходит;
  • создать правила для обработки запросов, приходящих от ботов и так далее.

Чтобы решать вышеперечисленные задачи, современному вебмастеру не обязательно уметь разрабатывать скрипты на PHP, потому что для многих популярных движков, таких как WordPress, уже давно разработаны специальные расширения со всеми подходящими функциями. Вам нужно лишь отыскать соответствующий плагин.

User Agent и поисковые роботы

Главным поисковым ботом Google является Googlebot. Если вам нужно полностью заблокировать сайт от индексации в поисковой системе, в файле Robots агентом пользователя для Googlebot нужно указать условие, скрывающее ресурс от ботов поисковика.

Нет нужды вносить какие-либо изменения в robots.txt, если вы хотите, чтобы сайт был открыт для сканирования поисковыми ботами полностью.

Как запретить доступ к сайту по User-Agent?

Вам понадобится использовать несколько правил в файле .htaccess. Давайте рассмотрим пример с применением правил, которые закрывают доступ к ресурсу через утилиту java:

После User-Agent, указанного в первой строке, находится юзерагент утилиты Java. Вы видите, что ему прописано имя bad_bot. Вторая строка начинается с команды Deny, блокирующего доступ для запроса, отправленного bad_bot.

Вместо Java можно прописать юзерагент любого бота и браузера, а также присвоить им имя bad_bot.

Чтобы проверить правильность внесенных изменений, нет необходимости заходить на сайт с разных устройств. Для современных браузеров придумано изобилие плагинов с функцией замены User-Agent.

Зачем менять User-Agent?

К замене юзерагента вебмастера прибегают с целью проверки правил для поисковых роботов и утилит.

Любой браузер, формируя страницу ресурса в читабельный для пользователя вид, по-своему обрабатывает данные, взятые с сервера. Так, если в браузере Chrome указать User Agent браузера Opera, то сайт может отобразиться некорректно. В связи с этим, закончив тестирование, никогда не забывайте возвращать изначальные данные User-Agent.

Как изменить user agent в браузерах?

Mozilla Firefox

Способ подходит для версии Mozilla Firefox от 34.0 и новее. Напишите в адресной строке about:config, а затем создайте строку, назвав ее general.useragent.override. Изначально данной строки не существует. В ее значение впишите содержание User Agent.

Chrome

Не подойдет для версий браузера, старее 26.0.1410.64. Откройте Chrome, введя ключ --user-agent=”впишите новую строку User-agent”. К примеру, если на вашем ПК установлен Windows, используйте сочетание клавиш Win+R и укажите в поле «Открыть» chrome –user-agent=”MyBrowser”. Для проверки значения, наберите about: в адресной строке.

Opera

Для тех, у кого версия Opera 12.15 и новее. В адресной строке напишите opera:config#UserPrefs|CustomUser-Agent, а затем в выделенном поле Custom User-Agent наберите новое значение для строки Юзерагент. Не забудьте сохранить изменения внизу страницы.

Safari

Для версий Safari 5.1.7 и новее. Перейдите в меню Разработка. Вызвать панель можно, кликнув Alt. Меню может быть отключено, а чтобы его включить, зайдите в Правка – Настройки – Дополнения, поставив отметку возле Показывать меню разработка в строке меню. Далее в меню перейдите в Разработка – Пользовательский агент. Тут уже есть список из некоторых юзерагентов, но если ни один из предложенных вам не нужен, нажмите Другой и напишите необходимую вам строку.

Internet Explorer

Способ актуален для версий от Internet Explorer 10 и новее. Нажмите клавишу F12 чтобы открыть Средства разработчика, там зайдите в меню Сервис – Изменить строку агента пользователя. Здесь тоже есть готовый список из нескольких строк User Agent, но если вам они не подходят, нажмите Особая и введите необходимую строку, после чего кликните Добавить, а затем выбрать из списка и Установить.

Огромный минус данного способа заключается в том, что после закрытия браузера он перестает работает и, как только браузер запустится по-новому, придется заново заходить в список и выбирать созданный user-agent.

Но есть альтернативный вариант. Исправьте строку Юзерагент в реестре. Так она будет работать и после закрытия веб-браузера. Но у данного метода тоже есть недостаток. Вы не сможете поменять строку на какую только пожелаете. Она содержит различные значения реестра, разделенные символом «;».

Для изменения значения относительно всех пользователей используйте:

Для одного пользователя:

Изначально здесь лишь один ключ По умолчанию или default. Создайте три параметра строк:

  1. Compatible.
  2. Platform.
  3. Version.

Изменения заработают после перезагрузки браузера. Например:

Как изменить User Agent на мобильных устройствах?

В большинстве смартфонов строка user agent изменяется посредством встроенных настроек браузера.

Стандартный браузер для Android

User-Agent меняется в настройках браузера. За это отвечает опция UAString. Хотя изначально данное меню скрыто. Напишите в адресной строке about:debuq и кликните Поиск, чтобы сделать опцию видимой.

Dolphin Browser

Способ работает для Dolphin Browser версии 11.4.2 и выше. Меняется строка в меню Настройки – Специальные – Персонализация – Пользовательский агент. Предлагаются варианты «Android», «iPad», «iPhone», «Пользовательский» и «Рабочий стол». В «Пользовательском» можно набрать свою строку User Agent.

Как изменить User Agent в PHP?

Подходит для версии PHP 5.6 и новее. Есть два способа изменения юзерагента в PHP:

  1. В файле php.ini изменить параметр user_agent.
  2. Применить stream_context_create в ходе выполнения скрипта.

Пример применения для file_get_contents:

Пример для Soap Client:

Списки и примеры строк User Agent

Desktop браузеры:

  • Mozilla Firefox 36 (Win 8.1 x64): Mozilla/5.0 (Windows NT 6.3; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0
  • Google Chrome 53 (Win 10 x64): Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36
  • Google Chrome 40 (Win 8.1 x64): Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
  • Opera 40 (Win 10 x64): Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.101 Safari/537.36 OPR/40.0.2308.62
  • Opera 12.17 (Win 8 x64): Opera/9.80 (Windows NT 6.2; WOW64) Presto/2.12.388 Version/12.17
  • Apple Safari 5.1 (Win 8 x64): Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2
  • Internet Explorer 11 (Win 10 x64): Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko
  • Internet Explorer 11 (Win 8.1 x64): Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; ASU2JS; rv:11.0) like Gecko
  • Microsoft Edge (Win 10 x64): Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586

Мобильные браузеры:

  • iPhone: Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25
  • 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

Планшеты:

iPad: Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25

Поисковые системы:

  • Яндекс: Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
  • Google: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
  • Bing: Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
  • Yahoo! Slurp: Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)
  • Mail.ru: Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/Fast/2.0; +http://go.mail.ru/help/robots)
  • Sputnik: Mozilla/5.0 (compatible; SputnikBot/2.3; +http://corp.sputnik.ru/webmaster)

Роботы, боты, анализаторы:

  • Ahrefs: Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://ahrefs.com/robot/)
  • Majestic: Mozilla/5.0 (compatible; MJ12bot/v1.4.5; http://www.majestic12.co.uk/bot.php?+)
  • SMTBot: Mozilla/5.0 (compatible; SMTBot/1.0; +http://www.similartech.com/smtbot)
  • linkdex: Mozilla/5.0 (compatible; linkdexbot/2.2; +http://www.linkdex.com/bots/)
  • Exabot: Mozilla/5.0 (compatible; Exabot/3.0; +http://www.exabot.com/go/robot)
  • StatOnline.ru: Mozilla/5.0 (compatible; StatOnlineRuBot/1.0)

Заключение

Благодаря User-Agent вы можете ограничивать ботам доступ к страницам своего ресурса, анализировать, с какого браузера/устройства/IP/Операционной системы был сделан запрос и подгонять свой веб-ресурс под различные браузеры, чтобы он отображался корректно для всех пользователей вне зависимости от того, с каких устройств они переходят.

Рейтинг статьи: 4.5 / 5. Кол-во оценок: 23

Пока нет голосов! Будьте первым, кто оценит эту статью.

Наверное, каждый знает, что сайты и сервисы собирают информацию о пользователях для собственных целей. User Agent - строка, которая содержит информацию о версии операционной системы, браузере и его особых функциях, а также об устройстве, с которого пользователь посещает сайт. Сайты собирают эти сведения для корректного отображения страницы и её содержимого. Раньше, сайты создавались с учётом особенностей разных браузеров, поэтому пользователи изменяли Юзерагент, чтобы просматривать страницы сайтов в том виде, который им нужен. Этим инструментом часто пользуются разработчики, проверяя работоспособность страниц с разных устройств.

Сама по себе информация, которую предоставляет Юзерагент браузера вреда не представляет, однако, некоторые сайты и сервисы используют её для идентификации пользователей. Поэтому, User Agent мешает тем, кто работает с мультиаккаунтами, социальными сетями и торговыми сервисами: smm менеджерам, арбитражникам, вилочникам, и.т.д. С их помощью сайты, сервисы и социальные сети обнаруживают одновременную работу нескольких аккаунтов и блокируют всю сеть, что приводит к потере денег и времени. Чтобы этого не случилось, пользователи изменяют User Agent в браузерах и программах, в которых присутствует встроенный браузер.

Также подмена User Agent поможет просто сохранить анонимность и обеспечить безопасность компьютера и хранимых на нём данных, а также обойти ограничения и посещать сайты, содержимое которых доступно только при использовании определённой платформы или устройства.

Однако, смена User Agent имеет недостатки: некоторые сайты могут отображаться некорректно, а сервисы технической поддержки получат неверную информацию о вашем устройстве и браузере, что затруднит решение проблемы. Поэтому, делайте это с умом и не забывайте откатывать изменения, если этого потребует ситуация.

Как отключить User Agent в браузерах

Способы изменения User Agent отличаются, в зависимости от браузера. Где - то это сделать проще, где - то сложнее, а в отдельных случаях, сменить User Agent без сторонних расширений не представится возможным. Если вы не знаете, как изменить User Agent, то воспользуйтесь инструкциям ниже. В них рассказывается, о изменении User Agent в популярных браузерах.

Изменение User Agent в Mozilla Firefox

В новых версиях Mozilla Firefox изменить User Agent можно через командную строку браузера. Для этого вам потребуется:

  • Открыть браузер и в адресную строку ввести: about:config.
  • Нажимаем правой кнопкой мыши в окно настроек и выбираем пункт "создать", а затем выбираем "строка".
  • После этого, откроется окно, где предлагается назвать строку. Даём ей имя general.User Agent.override и жмём "Ок".
  • После этого, появится новое окно, которое потребует ввести значение строки. Вводим в неё нужный вам User Agent и нажимаем "ОК".

Что такое User Agent и как его сменить в браузере

Универсальный способ изменения User Agent для браузеров на базе Chromium

Универсальный способ, который подойдёт для всех браузеров на базе Chromium. Замена юзер агента осуществляется прямо через браузер, используя встроенные инструменты разработчика. Для этого нужно:

  • Открываем браузер и заходим в его меню. Наводим курсор на пункт "Дополнительные инструменты", затем кликаем на пункт "Инструменты разработчика", либо вызываем меню сочетанием клавиш Ctrl+Shift+L или просто жмём F12.
  • В появившемся окне справа нажимаем на три точки, которые расположены на вкладках сверху
  • Во всплывающем окне выбираем раздел "More Tools", в нём кликаем на кнопку "Network conditions".
  • Снизу справа откроется дополнительная вкладка. В разделе "User Agent" снимаем галочку с пункта "Select automatically".
  • После этого, выбираем необходимый User Agent из ползунка, или же вводим нужный в специальное поле, расположенное ниже.
  • Данный способ подойдёт для трёх указанных выше браузеров. Если же он не сработал, то попробуйте воспользоваться другими способами, которые перечислены ниже.

Что такое User Agent и как его сменить в браузере

Изменение User Agent в Google Chrome

Поменять User Agent в Google Chrome несложно. Если универсальный способ вам не помог, или оказался слишком сложен, то попробуйте этот. Он работает для версий выше 26. Вам потребуется:

  • Кликнуть правой кнопкой мыши на ярлык браузера.
  • Во всплывающем окне нажать "Свойства."
  • В поле "Объект" добавить следующее содержимое: --user-agent="(необходимый вам User Agent)”
  • После этого, нажмите "ОК".

  • Нажмите Win+R. В открывшемся окне "Выполнить", впишите chrome --user-agent="(нужный User Agent)"
  • Нажмите "ОК"

Также можно просто использовать расширение, которое сменит User Agent в пару кликов. Найти их можно в поисковике, или в магазине расширений Chrome. Если вы не знаете, какое расширение использовать, то советуем обратить внимание на User-Agent Switcher для Google Chrome.

Что такое User Agent и как его сменить в браузере

Изменение User Agent в Opera

Если универсальный способ, указанный выше, вам не помог, попробуйте воспользоваться дополнительными способами изменения User Agent в опера, которые зависят от версии вашего браузера. Чтобы сменить User Agent в 43 версии Oprea и ниже необходимо:

  • Открыть браузер, в адресную строку ввести opera:config#UserPrefs|CustomUser-Agent.
  • В открывшемся окне впишите нужный вам User Agent.

В новых версиях такой способ может и не сработать, поэтому придётся воспользоваться сторонними расширениями, которые меняют User Agent браузера, или делают его случайным при каждом входе в браузер. Их легко найти по соответствующему запросу в поисковике. Например, расширение User-Agent Switcher для Opera.

Изменение User Agent в Yandex Browser.

Помимо универсального способа, описанного выше, сменить User Agent в Yandex Browser можно при помощи специального расширения, которое можно найти при помощи поисковика. Мы рекомендуем использовать расширение User-Agent Switcher для Yandex Browser.

Помните, что сменой Юзер агента нужно пользоваться с умом. Не забывайте возвращать исходные параметры после каждого изменения, поскольку неверно установленный 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: визитная карточка веб-приложения

В этой статье мы расскажем о том, что такое User-Agent, для чего он нужен и как с его помощью делать всякие нужные штуки. Эта информация пригодится тем, кто планирует всерьез самостоятельно заняться оптимизацией своего сайта, уделяя особое внимание вопросам безопасности. Вслед за этой статьей появится еще несколько материалов, посвященных оптимизации сайтов, не пропустите.

5

Итак, 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 поступают запросы к вашему сайту?

3

Информация о поступающих запросах хранится в виде журналов работы веб-сервера. Вы можете включить сохранение журналов веб-сервера в Панели управления аккаунтом хостинга. Перейдите в раздел «Дополнительно» → «Журналы веб-сервера», отметьте домен сайта и нажмите на кнопку «Включить». После этого журналы веб-сервера начнут сохранятся в папке /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?

Ответ достаточно прост — всего при помощи нескольких правил в файле .htaccess, сформировать и добавить которые не составит труда даже новичку. Освежить знания по работе с файлом .htaccess вам поможет статья в нашем блоге.

Рассмотрим пример, в котором используются правила, запрещающие доступ к сайту с использованием утилиты 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 других браузеров, можно найти в их документации.

Broadcast

Наша компания работает с вещанием видео через интернет, поэтому тут кратко, просто чтобы было понятнее, в чем разница между скрэмблированием видео на источнике и управляемоей раздачи видео.

Multicast у меня в Broadcast попал, потому что, во-первых, это форма широкого вещания, во-вторых, я говорю не только про передачу пакетов в IP-сетях, но и затрагиваю DVB.

Главный недостаток таких систем в том, что ключами можно делится (Кардшаринг). Без обратной связи, нельзя проверить подлинность карты или модуля, да и узнать о существовании и количестве злоумышленников технически невозможно.

Говорить тут особо не о чем. Технология принципиально не меняется уже много лет. Старые системы взламывают, появляются новые. Недостатки есть, но в целом система работает.

Unicast

При Unicast вещании можно использовать Broadcast подход: скрэмблируем поток на источнике, а ключи раздаем через интернет. В таком случае, все то же самое, что и у IPTV, только вещаем не мультикастом, а по HTTP.

image

image

Да, конечный пользователь может сохранять сегменты к себе на диск и даже организовать трансляцию другим пользователям. Но, у одноразовых ссылок есть срок жизни. Настроить и забыть не получится. Придется регулярно получать новые ссылки от Middleware. Да и в статистике будет видно, что пользователь 24/7 смотрит один и тот же канал. Подозрительно.

«Но ведь телеканалы не позволяют транслировать их в кабельных/локальных/интернет сетях без шифрования сертифицированной CAS-системой.» — добавьте вы.

Не будем в рамках этот статьи разбираться с юридическими нюансами. У разных телеканалов разные требования, бывают каналы, позволяющие открытую трансляцию, кроме телеканалов наши клиенты вещают видео с камер наблюдения, которое тоже нужно защищать от чужих глаз.

Многие клиенты приходят к нам именно ради системы авторизации.

Ладно, хватит теории, давайте займемся практикой.

Stalker имеет несколько встроенных механизмов для защиты видео. Они имеют ряд ограничений: не совместимы с некоторым протоколами (например, RTSP), не могут полноценно защищать HLS потоки и не учитывают одновременные подключения. Зато не требуют специализированного видеосервера.

image

Данная конфигурация подходит для защиты HTTP MPEG-TS потоков, т.к. между сервером и клиентом устанавливается только одно TCP соединение. Посмотрим, как выглядит конфигурация NGINX:


Stalker генерирует ссылку вида: stalker/ch/TOKEN123, где TOKEN123 — уникальный, одноразовый пароль. Когда клиент открывает эту ссылку, NGINX делает rewrite на файл chk_tmp_tv_link.php, который проверяет валидность токена и возвращает ссылку на поток с помощью заголовка X-Accel-Redirect.

Исходный код файла chk_tmp_tv_link.php:


Согласно документации, для использования временных ссылок, необходимо задавать URL канала в формате: 192.168.1.1:8888/127.0.0.1:8899/udp/239.1.1.1:1234, где 192.168.1.1:8888 — это сервер udpxy, с установленным NGINX.

Проверив токен, Stalker возвращает в переменной $result ссылку на stalker/get/127.0.0.1:8899/udp/239.1.1.1:1234.

Как мы знаем из конфигурации NGINX, /get/ — это internal location, что означает, что доступ сюда можно получить только через X-Accel-Redirect заголовок, полученный от бэкенда.

Далее, с помощью нехитрого регулярного выражения, NGINX начинает проксировать (proxy_pass) на локальную (или удаленную) udpxy.

NGINX Secure links в Stalker

Теперь поставим галочку «NGINX secure link»

image

Stalker защищает доступ к HTTP MPEG-TS потокам и ссылки на m3u8 плейлисты. Сами же чанки и медиа плейлисты остаются незащищенными и с помощью tcpdump/wireshark можно легко узнать адреса медиа плейлистов и подключаться к ним напрямую.

Самый простой и, главное, более надежный способ защитить потоки — включить интеграцию с Flussonic. Настройка со стороны Сталкера не требуется, стоит лишь поставить галочку «Flussonic» в настройках канала, а со стороны Flussonic требуется лишь указать адрес Сталкера.

Flussonic — это видеосервер нашей разработки, широко применяющийся во многих OTT и IPTV сервисах. Наши сильные стороны — это управление доступом и учет сессий, запись архива. Подробнее у нас на сайте.

У нас реализован механизм идентификации пользователей и отслеживания подключений с помощью авторизационных бэкендов. По протоколам HLS и HDS используются HTTP механизмы отслеживания сессий, а по протоколам RTMP, RTSP и MPEG-TS обрабатываются постоянные TCP сессии. Также отслеживается экспорт архива в формате MPEG-TS и MP4.

Stalker — это и есть авторизационный бэкенд. Когда клиент приходит за видео, мы передаем бэкенду не только IP-адрес и имя канала, но и другую важную информацию:

Эта информация позволяет бэкенду гибко контролировать доступ. Можно использовать все данные, чтобы строить сложные правила.

В ответ, Сталкер возвращает не просто да/нет, но и информацию о сроке действия разрешения (или запрета), id пользователя и количество одновременных соединений для этого пользователя.

Flussonic сохраняет ответ и на время действия разрешения не посылает повторных запросов в бэкенд. Так как статья получается итак затянутой, я не буду показывать как настроить авторизацию во Flussonic через Stalker, это очень просто и у нас есть краткая, но исчерпывающая документация по этому вопросу.

Подводим итоги.

Судя по количеству просмотров первой статьи цикла «Строим OTT/IPTV сервис», еще не все построили свои решения и мне не стоит затягивать со следующими статьями.

Дальше надо бы поговорить про вставку видео на сайт, этот вопрос не такой простой, как может показаться. Прочитайте нашу статью "Какой бывает HTML5-стриминг (и почему mp4-стриминга не существует)", она рассказывает о современных средствах передачи и просмотра потокового видео в браузере. А еще мы запустили бесплатный сервис сбора статистики для всех наших клиентов.

Читайте также: