Очередной приступ паранойи был вполне обоснован - он наступил после прочтения статьи о методах анонимности в сети , где автор на примере браузера FireFox рассказывал о потенциальных утечках идентификационной информации. И стало интересно - а на сколько озвученные решения применимы, скажем, к браузеру Google Chrome
?
Скрыть реальный IP - используем разные VPN сервера, отключить львиную долю отслеживающих скриптов - Adblock Plus и Ghostery убрать Referer - не вопрос , что то ещё забыли… Ах да - User-Agent - своеобразный «отпечаток», по которому (в связке, скажем, с IP) легко идентифицировать пользователя. И с этим надо было что-то делать. Найденные решения лишь статично изменяли значение User-Agent, чего было явно недостаточно. Тогда и было решено написать плагин для скрытия реального User-Agent"a, а если быть точнее - подменять его на рандомный. Или почти рандомный.
$ 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"
На сайте ничего нет, а я знаю о посетителе более чем достаточно. Всё потому что «логи знают всё» .
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).
Вообще расширение успешно выдает себя за следующие браузеры:
Открытые исходники. Если есть желание допилить под себя, всё что необходимо, это:
Лучше один раз увидеть.
В этой статье мы расскажем о том, что такое 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 - название и версия программного обеспечения.
Информация о поступающих запросах хранится в виде журналов работы веб-сервера. Вы можете включить сохранение журналов веб-сервера в Панели управления аккаунтом хостинга. Перейдите в раздел «Дополнительно» → «Журналы веб-сервера », отметьте домен сайта и нажмите на кнопку «Включить».
После этого журналы веб-сервера начнут сохранятся в папке /logs, находящейся в директории сайта, в указанном примере это директория domains/user-agent.01sh.ru/logs.
Информация о каждом запросе хранится в журнале отдельной строкой, например:
[u] 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 очень просто определить, откуда пришел запрос - это может быть компьютер, планшет, мобильное устройство, поисковый робот или некое программное обеспечение.
Информация об источнике запроса может быть необходима для решения следующих задач:
Значительная часть перечисленных задач требует опыта разработки скриптов на PHP, но не стоит пугаться - для большинства популярных CMS уже существуют расширения, обладающие необходимыми функциями, и вам достаточно найти подходящий плагин или модуль, чтобы получить желаемый результат.
Мы же подробнее разберем ситуацию, когда требуется запретить доступ к сайту по User-Agent. Чаще всего это необходимо для исключения из индексации поисковыми роботами файлов из определенной директории, блокировки нежелательных роботов, создающих нагрузку на сайте, или же обеспечения безопасности, если к сайту поступает множество подозрительных запросов с различных IP-адресов, но с одинаковым User-Agent.
Ответ достаточно прост - всего при помощи нескольких правил в файле.htaccess, сформировать и добавить которые не составит труда даже новичку. Освежить знания по работе с файлом.htaccess вам поможет .
Рассмотрим пример, в котором используются правила, запрещающие доступ к сайту с использованием утилиты wget:
SetEnvIfNoCase User-Agent "^Wget" bad_bot Deny from env=bad_bot
В первой строке после параметра User-Agent в кавычках указан User-Agent утилиты Wget, которому присваивается имя bad_bot. Во второй строке указывается необходимость блокировки доступа (Deny) для запроса, пришедшего от bad_bot.
Вместо «^Wget» может быть указан User-Agent любого браузера или робота, имя bad_bot может быть присвоено любому количеству User-Agent, то есть правила
SetEnvIfNoCase User-Agent "^Wget" bad_bot SetEnvIfNoCase User-Agent "^Java" bad_bot SetEnvIfNoCase User-Agent "^Zeus" bad_bot Deny from env=bad_bot
запретят доступ для всех перечисленных 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=""
и в кавычках указать новую строку User-Agent.
Например, в ОС Windows это можно сделать, нажав сочетание клавиш Win+R и вписав в поле «Открыть» команду:
chrome --user-agent="MyBrowser"
где вместо MyBrowser должен быть указан нужный вам User-Agent.
Например, чтобы присвоить Google Chrome значение User-Agent консольного браузера Links, следует ввести в поле «Открыть» строку
Chrome --user-agent="Links (2.8; Linux 3.13.0-24-generic x86_64; GNU C 4.8.2; text)"
и нажать на кнопку «ОК».
После этого открывшееся окно браузера будет иметь не стандартный, а заданный User-Agent. Чтобы проверить текущее значение User-Agent, можно ввести в адресной строке:
Информацию о том, как изменить User-Agent других браузеров, можно найти в их документации.
Желаем вам интересных экспериментов!
User Agent – это набор параметров, по которым происходит определение браузера, операционной системы, их версий, языка и плагинов. Такие данные требуются для корректного отображения веб-страниц на различных устройствах и браузерах.
После стандартизации основных браузеров данные User Agent уже не обязательны, и используются в основном для отладки сайтов, сбора статистики и «черной» поисковой оптимизации. Также данные User Agent могут служить дополнительным источником информации для злоумышленников. Поэтому, для обеспечения анонимной работы в сети Интернет, пользователи изменяют значение User Agent при помощи различных плагинов и программ.
Важно помнить, что не все плагины способны корректно изменять User Agent пользователя. Некоторые плагины делают подмену данных User Agent только в браузере клиента, оставляя аналогичные серверные данные без изменений. Пользователи, у которых не совпадают значения User Agent, могут вызывать подозрения у администраций различных банковских сайтов и платежных сервисов.
После установки или удаления плагинов и программ для подмены User Agent рекомендуется пройти тест на сайте . Тест покажет, совпадают ли значения User Agent на стороне клиента и на стороне сервера.
В браузере Chrome подменять данные User Agent удобней при помощи плагина «User-Agent Switcher».
В Firefox возможно подменить User Agent через настройки браузера.
В браузере Opera подмена User Agent возможна с помощью плагина «User-Agent Switcher».
Приветствую!
Интернет-браузеров существует превеликое множество – как для классических компьютеров и ноутбуков, так и созданных для мобильных гаджетов, и даже телевизоров (смарт-тв). А последний тренд – это браузеры для смарт-часов, хотя удобство выхода во всемирную сеть с устройства со столь низкой диагональю дисплея под большим вопросом.
И помимо дизайна, функционала и «движка», они также имеют и свои собственные идентификаторы. Эти идентификаторы именуются просто – юзер агент.
И если у вас возникла необходимость посмотреть юзер агент, что имеет используемый вами браузер, то данная задача решается молниеносно. Рассмотрим, как это можно сделать наиболее быстро и просто.
Дабы выполнить задуманное, не требуется использовать какое-либо стороннее программное обеспечение и тому подобные вещи. User Agent вместе с другой технической информацией автоматически передаётся при посещении любого сайта, браузер таким образом «представляется», ведь от данного параметра порой зависит, какую версию сайта в итоге увидит посетитель. К примеру, если в юзер агенте фигурирует: Android, iOS, Mobile, то предполагается, что пользователь просматривает сайт с мобильного гаджета – тогда ему показывается облегчённая версия сайта.
С принципом передачи юзер агента и того, зачем это нужно, мы разобрались. Теперь осталось дело за малым – узнать юзер агент собственного браузера.
Если он автоматически передаётся, то можно сделать соответствующий интернет-сервис, который бы просто выводил его при посещении одной из страниц.
Там же можно подчеркнуть дополнительную информацию о вашем браузере, а также ваш IP адрес.