Программа для смены user agent. Что такое User Agent и как его сменить в браузере. Что из себя представляет User-agent

Очередной приступ паранойи был вполне обоснован - он наступил после прочтения , где автор на примере браузера FireFox рассказывал о потенциальных утечках идентификационной информации. И стало интересно - а на сколько озвученные решения применимы, скажем, к браузеру Google Chrome ?
Скрыть реальный IP - используем разные VPN сервера, отключить львиную долю отслеживающих скриптов - Adblock Plus и Ghostery убрать Referer - не вопрос , что то ещё забыли… Ах да - User-Agent - своеобразный «отпечаток», по которому (в связке, скажем, с IP) легко идентифицировать пользователя. И с этим надо было что-то делать. Найденные решения лишь статично изменяли значение User-Agent, чего было явно недостаточно. Тогда и было решено написать плагин для скрытия реального User-Agent"a, а если быть точнее - подменять его на рандомный. Или почти рандомный.

Немного теории

Вообще, User-Agent (далее по тексту - UA ) - штука нужная. Нужная в первую очередь для корректного отображения страниц, ведь нам всем известно - разные версии разных браузеров по разному рендерят странички, и заботливые web-программисты учитывают этот факт, выдавая нужным браузерам нужным скрипты и стили. Разнится поддержка доступных технологий «движками». Отсюда вытекает первое требование к итогу - возможность «имитировать» различные браузеры, и что самое важное - иметь возможность выбора между ними.
UA - это в первую очередь набор. Набор различных идентификаторов, по которым и происходит определение - какой браузер, какая операционная система, какой версии, и какое специфичное ПО (привет, IE) стоит у пользователя.
Почему именно IP и UA надо скрывать в первую очередь? А давайте посмотрим на лог пустого сайта-заглушки, на котором вообще ничего нет:

$ cat somesite.org.access_log | tail -3 10.12.11.254 - - "GET / HTTP/1.0" 200 5768 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.5; http://www.majestic12.co.uk/bot.php?+)" 10.12.11.254 - - "GET / HTTP/1.0" 200 5768 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" 10.12.11.254 - - "GET / HTTP/1.0" 200 5768 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0"

На сайте ничего нет, а я знаю о посетителе более чем достаточно. Всё потому что «логи знают всё» .

Немного практики

Итак, решено - подставляем фейковый UA . Но как его сформировать? Я пошел по пути собирания с десятка UA каждого интересующего браузера, и написания регулярки для каждого, которая будет генерировать максимально правдоподобный и в то же время а какой-то мере уникальный отпечаток. Хотите пример? Вот вам 10 UA браузера «IE 9», и среди них пять настоящих. Сможете отличить?

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; chromeframe/12.0.742.112) Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 6.0; Win64; x64; Trident/5.0; .NET CLR 3.8.50799; Media Center PC 6.0; .NET4.0E) Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 8.1; Trident/5.0; .NET4.0E; en-AU) Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0) Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 8.0; WOW64; Trident/5.0; .NET CLR 2.7.40781; .NET4.0E; en-SG) Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 8.0; Win64; x64; Trident/5.0; .NET4.0E; en) Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0) Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Zune 4.0; Tablet PC 2.0; InfoPath.3; .NET4.0C; .NET4.0E) Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 7.0; Trident/5.0; .NET CLR 2.2.50767; Zune 4.2; .NET4.0E) Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0
Да, это возможно, но для это нужно анализировать. Анализировать, например, какие.net могут стоять на каких ОС, анализировать версии и сочетания, нюансы. Когда они теряются в куче - задача становиться мало тривиальной. Кому интересно как выглядят регулярки - добро пожаловать по этой ссылке . Дня генерации использовал randexp.js (за подсказку спасибо хабрачуваку под ником ).

Вообще расширение успешно выдает себя за следующие браузеры:

  • IE с 6 по 10;
  • Chrome (Win / Mac / Linux);
  • Firefox (Win / Mac / Linux);
  • Safari (Win / Mac / Linux);
  • Opera (Win / Mac / Linux);
  • iPad и iPhone.
Что ещё интересного? Автоматизация . Отмечаешь галочками какие браузеры мы имитируем, ставишь галочку «Обновлять автоматически», указываешь интервал времени, и забываешь. Ничего лишнего. Для любопытных - посмотрите в консоли «фоновую страницу» - там всё не плохо залогировано.

Открытые исходники. Если есть желание допилить под себя, всё что необходимо, это:

  1. Открыть ссылку расширения на гитхабе;
  2. Нажать «Download Zip» или склонировать;
  3. На странице расширений поставить чекбокс «Режим разработчика»;
  4. Нажать «Загрузить распакованное расширение...» и указать путь к распакованному архиву или клону;
Буду очень признателен конструктивной критике и предложениям.

Лучше один раз увидеть.

Юзерагент (User Agent) – это идентификатор браузера, показывающий сайтам: вашу операционную систему и ее версию, разрядность, ваш браузер и его версию. Каждый браузер с которого вы заходите в интернет имеет свой юзер агент, но его можно поменять с помощью специальных расширений.

Юзер агенты могут понадобиться для работы в различных программах, например MultiBrowser, ZennoPoster, LSender VK PRO, различный софт для вк и т.д. При работе в таких программах важно использовать только актуальные версии юзерагентов, потому что на основании их некоторые сайты делают определенные выводы. При использовании старых и “плохих” юзер агентов может даже повышаться вероятность блокировки.

Пример юзер агента: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Операционная система Windows 7, архитектура x64
Браузер Chrome 67.0.3396.87

Где взять актуальный список

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

Так где же взять юзерагенты? Оказалось в интернете практически нет ресурсов предоставляющих актуальные юзер агенты. Самый популярный сайт с юзер агентами (useragentstring.com/pages/useragentstring.php) не обновляет базу уже несколько лет.

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

Если у вас мания преследования, это не значит, что за вами никто не следит...

Медицинское наблюдение

Некоторое удивляются: "А как какой-то_сайт.ру узнал мою ОСь и браузер?". Да, многие сервисы собирают такую информацию, т.к. это иногда важно для корректного отображения страниц. Еще это важно для сбора статистики. Например, благодаря такой информации я знаю, что среди посетителей нашего сайта 33% используют ОС Ubuntu и ей подобные и еще 30% пользуются другими дистрибутивами Linux.

Вообще-то, в этом (сборе таких данных) нет ничего страшного, если верны все 5 утверждений из нижеприведенных:

  1. Вы не пользуетесь Windows.
  2. Вы не троллите на хакерских сайтах (и вообще не хамите).
  3. Всю ценную информацию вы храните на удаленных серверах с регулярным бэкапом и 2048-битным паролем (ну, или дома под подушкой).
  4. Вы не страдаете манией преследования.
  5. Вы добропорядочный налогоплательщик.

Так же можно ничего не бояться, если вы вообще не выходите в интернет.

Лично я не могу выполнить пп.4-5, поэтому регулярно "меняю" свой браузер и ОСь.

Справка по User Agent

Чтобы узнать информацию о посетителех, сервер запрашивает у браузера информацию, называеюмую USER-AGENT. Это текстовая строка типа такой:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 3.5.30729)

Обычно в ней содержится информация о версии ПО, операционной системе и языке системы, но может быть и что-то еще.

В приведенной строке содержится такая информация:

  • ОС Windows Vista
  • Браузер Internet Explorer 6.0
  • .NET версии 3.5.30729

Некоторые компании (все, купленные Майкрософтом плюс многие банки, используеющие HTTP-клиент-банк) не поддерживают свои сайты для браузеров, отличных от MSIE. Именно поэтому подмена значения USER-AGENT актуальна не только для жделающих скрыть свою информацию, но для добропорядочных линукс-пользователей.

Со списком значений поля USER-AGENT можно ознакомиться в Википедии .

Мы же попробуем менять значение поля USER-AGENT в браузерах Firefox и Chrome\Chromium. Все описанное делалось в Ubuntu, но будет прекрасно работать в любой другой ОС.

Поехали...

Подделка User-agent в браузере Firefox

Вариат 1 - простой

Для начала устанавливаем плагин User Agent Switcher . Перезапускаем Firefox и выносим кнопочку User Agent Switcher на панель (можно и не выносить, а использовать через меню "Инструменты").

Но по умолчанию список User-agent-switcher очень мал, поэтому на надо его расширить (хотя, вам может и хватит).

Скачиваем файлик useragentswitcher.xml . Открываем настройки User Agent Switcher , давим кнопку Import и выбираем свежескачанный файл.

Теперь можно представляться практически любым из существующих браузеров.

Вариант 2 - для красноглазиков

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

Создаем строковый параметр general.useragent.override . По умолчанию его не существует

И задаем ему любое значение - именно его бразер будет отдавать на запрос о User Agent.

Подделка User-agent в браузере Chrome и Chromium

Вариант 1 - простой, но бестолковый

Этот способ похож на первый вариант для Firefox, но Хромовский плагин сильно бестолков, т.к. не может подменить реальное поле User-agent. Эта обманка действует только, если сайт определяет ОСь и браузер средствами Java. Вот ссылка на страницу плагина . По заявлению самого автора плагина все будет шоколадно, когда Google опубликуе API по данному вопросу.

User agents are unique to every visitor on the web. They reveal a catalogue of technical data about the device and software that the visitor is using. Armed with this information, you can develop richer and more dynamic websites that deliver different experiences based on the user agent that’s visiting.

User agents are also critical in controlling search engine robots using the robots.txt file on your server. But they dont function perfectly in every situation, and the information in a user agent string can be faked.

In order to leverage this information, you need to understand the component parts of a user agent string, and consider also the potential risks of using this method to deliver content.

What is a User Agent?

Everyone that is browsing the web right now has a user agent. It’s the software that acts as the bridge between you, the user, and the internet. It’s easiest to understand user agents if we backtrack and look at the evolution of the web, so we can understand the benefits of user agents.

When the internet was a text-based system, right back at the beginning of its use, users had to type commands to navigate and send messages. Now, we have browsers to do that for us. We simply point and click, and the browser is acting as our “agent,” turning our actions into commands.

When your browser (or similar device) loads a website, it identifies itself as an agent when it retrieves the content you’ve requested. Along with that user agent identification, the browser sends a host of information about the device and network that it’s on. This is a really set of data for web developers, since it allows them to customize the experience depending on the user agent that’s loaded the page.

User Agent Types

Browsers are a straightforward example of a user agent, but other tools can act as agents. Crucially, not all user agents are controlled or instructed by humans, in real time. Search engine crawlers are a good example of a user agent that is (largely) automated - a robot that trawls the web without a user at the helm.

Here’s a list of some of the user agents you’ll encounter:

  • Browsers: Including Internet Explorer, Firefox, Safari, Chrome, Edge, BlackBerry, Opera, Minimo, Beonex and the AOL browser.
  • Crawlers: Google, Google Images, Yahoo! Slurp, and hundreds more.
  • Consoles: PlayStation 3, Wii, PlayStation Portable and Bunjalloo - the Nintendo DS’ built-in browser.
  • Legacy operating systems (for example, AmigaVoyager).
  • Offline browsers and similar (for example, Wget and Offline Explorer).
  • Link checkers (for example, W3C-checklink).
  • Plus a whole range of feed readers, validators, cloud platforms, media players, email libraries, and scripts.

Reading HTTP User Agent Strings

Once the user agent has identified itself to the web server, a process called content negotiation can begin. This allows the website to serve different versions of itself, based on the user agent string. The agent passes its ID card over to the server, and the server then negotiates a combination of suitable files, scripts, and media.

In the early days of the web, user agents were used to distinguish Mosaic from Mozilla, since Mosaic did not support frames, while Mozilla did.

To look at a user agent string in more detail, take a look at this example user agent string, as generated by the . Your results will be unique to your computer, device and network, but here one from a computer we have in the office:


Breaking the example down, we get the following information:

  • The user agent application is Mozilla version 5.0, or a piece of software compatible with it.
  • The operating system is OS X version 10.2.2 (and is running on a Mac).
  • The client is Chrome version 51.0.2704.84.
  • The client is based on Safari version 537.36.
  • The engine responsible for displaying content on this device is AppleWebKit version 537.36 (and KHTML, an open source layout engine, is present too).

Dissecting user agent strings can be tricky, since there is no standard format. But there are guides and analytics tools all over the web that can help. For most designers, the application, version and engine are likely to be key.

Note that a huge part of the user agent string is concerned with compatibility. That’s because Internet Explorer originally had to declare itself to be Mozilla compatible in order to receive content with frames.

In practice, the majority of browsers now declare themselves to be Mozilla compatible to ensure that they can access all of the content on the web.

Content Negotiation

So: the user agent string is a little muddled. But it’s still useful. What can we do with it?

  • Check the capabilities of the browser or device, and load different CSS based on the outcome;
  • Deliver custom JavaScript to one device compared with another;
  • Send an entirely different page layout to a phone, compared to a desktop computer;
  • Automatically send the correct translation of a document, based on the user agent language preference;
  • Push special offers to particular people, based on their device type or other factors;
  • Gather statistics about visitors to inform our web design and content production process, or simply measure who’s hitting our site, and from which referral sources.

Overall, we can empower our scripts to make the best choice for our visitor, based on their user agent. And we can feed that data back into a cycle of continuous improvement, analytics and other processes, like conversion optimization.

В один прекрасный день вам обязательно понадобятся актуальные значения юзер агент (user agent). В своих поисках пересмотрите много специальных сайтов, размещающих такие списки, но свежих данных не найдете. Далее опишем способ получения списка значений user agent, наиболее актуальных на текущую дату. Не исключено, что несколько записей будет от старых браузеров так как наш метод основан на сборе статистики посещений сайтов, а некоторые пользователи пользуются старыми не обновленными версиями программ.

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

1 этап — сбор статистики с сайтов

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

Определившись с сайтами «донорами» идем в панель управления хостинга и в меню «Журналы» (такое название меню у хостинга beget, в другом может отличатся) включаем функцию «Журнал доступа к веб-серверу». После этих манипуляций в коневой папке сайта появится текстовый файл со списком записей к каким страницам вашего сайта были обращения, ip-адрес и юзер агент устройства. Далее нужно выждать время чтобы эти записи накопились.

На следующем изображении выделена запись user agent, которые мы и сможем узнать и будем собирать.

2 этап — чистка списка user agent

Скачиваем получившиеся файлы к себе на компьютер, если их несколько, то открываем любой в блокноте, а все последующие добавляем в него копированием текста. Тем самым мы подготовим файл для загрузки через excel. В нашем примере получился файл на 86072 строки. Далее необходимо получившийся файл открыть через excel. Открываем программу, жмем «Файл»-«открыть», в следующем окне выбираем наш файл. Далее откроется мастер текстов (импорт) в котором нужно поставить чекбокс в положение «с разделителями» и в следующем окне в поле «другой» поставить двойную кавычку. На третьем шаге в таблице «образец разбора данных» выделить последний столбец и указать для него формат «текст».

После такого импорта данные о посещении разбиты по столбцам. Нужные нам юзер агенты находятся в столбце F, поэтому смело можно удалить столбцы от A до E. Далее необходимо воспользоваться встроенной в excel функцией удаления дублей. В 2007 версии кнопка «удалить дубликаты» находится на вкладке «данные». Нажимаем ее и видим, что вместо 86072 строк, осталось 1555. Но на этом не останавливаемся, а следующим шагом удаляем ненужные записи юзер агент от поисковых систем. Выглядят они так: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html). Можно поставить фильтр по слову «bot» или «compatible». Далее идем по списку юзер агент и удаляем не нужные нам записи, например, от браузеров телефонов на андроид или айфон.

3 этап — итоговый файл

После всех чисток, получился довольно большой файл user agent, который можете использовать для смены записи в браузере, для добавления в программы парсинга и тому подобные. Актуальность списка — первая половина февраля 2016 года. Периодически он будет обновляться.

В файле экселя есть 3 вкладки:

  1. Основной список, где найдете 823 записи user agent от yandex, mozila firefox, opera, internet explorer (IE), google chrome, safari и других браузеров. Записи собирались со статистики посещений сайта, поэтому могут попадаться старые браузеры и операционные системы, ведь не у всех они обновлены.
  2. Вкладка «Мобильные устройства» содержит лист с 530 записями от мобильных браузеров. Решено их не удалять, а перенести в отдельную вкладку.
  3. Во вкладке «Мусор» собрали старые версии браузеров, использование которых не рекомендуется.

Заключение

Файл user agent браузеров не в фомате txt, но это легко поправимо обычным копированием. На сайтах донорах использовался протокол http. Если в строке встречается запись wow64, то она означает, что компьютер посетителя с таким юзер агентом использует 64-битную операционную систему. Большая часть посетителей — это Россия.

Способ сбора записей не самый быстрый и удобный, но лучше, чем использовать старые и не современные записи.