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

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

Как изменить User-Agent в настройках Firefox

Для того чтобы изменить User-Agent в Firefox , выполните следующие действия:

User-Agent браузеров

Вот некоторые Юзерагенты, которые вы можете использовать:

Chrome на Linux:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36

Microsoft Edge:
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

Internet Explorer:
Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko

Еще больше их можно найти на сайте UserAgentString.com

Параметр «general.useragent.overridepreference» применяется к каждой открытой вкладке в Firefox и сохраняется до тех пор, пока вы не измените или не удалите его. Он остается включенным даже при закрытии или повторном открытии браузера.

Как изменить User-Agent Firefox с помощью расширения

Если вы часто меняете User Agent в Firefox, то стоит задуматься об установке специального браузерного дополнения, которое сэкономит много времени.

Изменить User-Agent в Firefox с помощью расширения User-Agent Switcher можно так:

Это дополнение является обновленной версией популярного расширения User-Agent Switcher и написано с помощью API веб-расширений. Старая версия не может использоваться в современных версиях Firefox. Эта версия расширения полностью совместима с новым Firefox Quantum.

Ну, а на сегодня все. Теперь вы знаете как изменять User Agent в Firefox. Ну, а если хотите ускорить работу браузера Firefox, то вам .

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

Для чего может понадобится изменить User-Agent

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

Как изменить User Agent в Google Chrome и Яндекс.Браузер

Подменить User-Agent в Google Chrome, Яндекс Браузер, Opera и других Chromium-обозревателях можно, как, используя непосредственно настройки самого веб-браузера, так и посредством расширений.

Способ 1. Настройки


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

Способ 2. Специальные расширения

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

Всё что для этого понадобится:


При этом, выбранный вами юзер агент будет задействован на всех сайтах, которые вы посетите (до завершения работы). Впрочем, можно поставить галочку напротив пункта «Remember last used User-Agent at startup»,

тогда работа будет возобновлена с тем же User-Agent, что вы задали во время предыдущей сессии.

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

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

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

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

Некоторое удивляются: "А как какой-то_сайт.ру узнал мою ОСь и браузер?". Да, многие сервисы собирают такую информацию, т.к. это иногда важно для корректного отображения страниц. Еще это важно для сбора статистики. Например, благодаря такой информации я знаю, что среди посетителей нашего сайта 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 по данному вопросу.

Очередной приступ паранойи был вполне обоснован - он наступил после прочтения статьи о методах анонимности в сети , где автор на примере браузера 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 (за подсказку спасибо хабрачуваку под ником barkalov).

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

  • 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. Нажать «Загрузить распакованное расширение...» и указать путь к распакованному архиву или клону;
Буду очень признателен конструктивной критике и предложениям.

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