Название версия браузера в реестре. Много анонимности не бывает — скрываем 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.
Открытые исходники. Если есть желание допилить под себя, всё что необходимо, это:
- Открыть ссылку расширения на гитхабе;
- Нажать «Download Zip» или склонировать;
- На странице расширений поставить чекбокс «Режим разработчика»;
- Нажать «Загрузить распакованное расширение...» и указать путь к распакованному архиву или клону;
Лучше один раз увидеть.
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 утверждений из нижеприведенных:
- Вы не пользуетесь Windows.
- Вы не троллите на хакерских сайтах (и вообще не хамите).
- Всю ценную информацию вы храните на удаленных серверах с регулярным бэкапом и 2048-битным паролем (ну, или дома под подушкой).
- Вы не страдаете манией преследования.
- Вы добропорядочный налогоплательщик.
Так же можно ничего не бояться, если вы вообще не выходите в интернет.
Лично я не могу выполнить пп.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.
Открытые исходники. Если есть желание допилить под себя, всё что необходимо, это:
- Открыть ссылку расширения на гитхабе;
- Нажать «Download Zip» или склонировать;
- На странице расширений поставить чекбокс «Режим разработчика»;
- Нажать «Загрузить распакованное расширение...» и указать путь к распакованному архиву или клону;
Лучше один раз увидеть.