Статьи Архив статей

Автор: Мациевский Николай aka sunnybear
Опубликована: 21 февраля 2009

Разгоняем браузеры: режем строку пользовательского агента

Небольшое введение

Зачем все это нужно? User-Agent передается от браузера к серверу при каждом запросе каждого ресурса. Большой размер пользовательской строки замедляет открытие каждого сайта на вашем личном компьютере (и сайт с этим ничего поделать не может). Уменьшение этой строки до приемлемого минимума способно чуть-чуть облегчить жизнь людей, использующих медленные подключения. А таких меньше не становится (если брать во внимание растущее число пользователей мобильного Интернета).

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

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

Все еще здесь? Тогда продолжаем.

Mozilla Firefox

Заходим в about:config и создаем новую переменную general.useragent.override. После чего выставляем во что-нибудь подходящее, например:

Mozilla/5.0 (Web Optimizator; Speed Up Your Website; ru; https://webo.in/; Firefox 3.0.6)

Есть некоторое количество подводных камней (в частности, при работе с Java), они все приведены на странице www.zytrax.com/tech/web/change-ua.html. Также крайне рекомендуется оставить Mozilla/5.0 в самой строке.

Для Firefox также есть дополнение User Agent Switcher, которое позволяет автоматизировать описанную процедуру.

Safari

Выбираем в меню Разработка -> Пользовательский агент -> в другой и вводим собственное значение:

Mozilla/5.0 (Web Optimizator; Speed Up Your Website; ru; https://webo.in/; Safari/525)

Я ограничился номером сборки билда WebKit после Safari, ибо некоторые проекты проверяют Safari/4 и Safari/5 на соответствие современным технологиям (например, поддержке gzip-сжатия). Данное значение однако не сохраняется при перезапуске браузера. Если кто знает, как это исправить — поделитесь, пожалуйста, в комментариях. Стоит также отметить, что Safari 3.0 и Safari 3.2 немного различаются логикой пользовательских настроек.

Google Chrome

Тут нам понадобится терпение, креативность и редактор исходных кодов в HEX-виде (подойдет и Xvi32). Находим у себя в установленном папке с этим браузером (обычно в .../Local Settings/Application Data/Google/Chrome/Application/Номер версии/) файл chrome.dll, делаем с него резервную копию — и начинаем редактировать. Находим строку с Chrome/, дальше видим уже знакомую картину:

Пользовательский агент в исходных кодах браузера Chrome

Выделяем весь блок, начинающийся с Mozilla, и заменяем его на требуемую строку (для Xvi32 это делается через Edit -> Overwrite string), закрываем Chrome (если он запущен), сохраняем файл и запускаем Chrome — вуаля, у нас собственный User-Agent:

Mozilla/5.0 (Web Optimizator; Speed Up Your Website; ru; https://webo.in/; Chrome/1.0.154)

В ходе данной операции пришлось столкнуться с единственной сложностью: число символов в файле должно остаться тем же самым. Поэтому если новая строка пользовательского агента короче, чем текущая, то нужно будет вставить соответствующее количество произвольных символов сразу после \x0, который завершает эту строку. Если новая строка длиннее, то удалить из следующей строки (в ней обычно содержится сообщение об ошибке, которое можно и переформулировать ради такого случая) нужное количество символов. Вроде все.

Источник информации.

MSIE

Шаг первый: сносим все лишние идентификаторы

Если вы уверены, что они вам не понадобятся.

Для этого запускаем редактор реестра (Start -> Run -> regedit), заходим в HKEY_LOCAL_MACHINE (или в HKEY_CURRENT_USER, но у меня лично все это находилось именно в первой ветке) и ищем:

SOFTWARE -> Microsoft -> Windows -> CurrentVersion -> Internet Settings -> User Agent

Тут сносим все, что находится в папке Pre Platform и Post Platform. Можно на этом, в принципе, успокоиться, но для настоящих фанатов своего дела стоит выполнить и следующий шаг.

Шаг второй: правим оставшуюся строку

Не уходя из реестра, идем (тут у меня сработал уже второй вариант) в:

HKEY_LOCAL_MACHINE (или HKEY_CURRENT_USER) -> SOFTWARE -> Microsoft > Windows
    -> CurrentVersion -> Internet Settings -> 5.0 -> User Agent

Нам доступны для изменения следующие ключи (если их нет, то нужно создать ключ с соответствующим названием и строковым содержанием):

Строка пользовательского агента для MSIE

  • (default) или (по умолчанию) — то, что находится в самой папке (располагается первым в списке ключей). Значение ключа по умолчанию равно Mozilla/4.0 и выводится перед круглыми скобками в строке пользовательского агента. На рисунке это обозначено как "Application Name" + "Application Version".
  • Compatible — "Compatibility Flag", по умолчанию равен "compatible".
  • Platform — "Platfrom Token", указание на платформу, полная таблица приведена чуть ниже. Для меня по умолчанию было равно "Windows NT 5.1".
  • Version — "Version Token", собственно, сам браузер. Для меня был "MSIE 7.0".

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

Mozilla/4.0 (Web Optimizator; Speed Up Your Website; ru; https://webo.in/; MSIE 7.0)

Источник информации: MSDN.

Список платформ для MSIE

КлючОписание
Windows NT 6.0Windows Vista
Windows NT 5.2Windows Server 2003; Windows XP x64 Edition
Windows NT 5.1Windows XP
Windows NT 5.01Windows 2000, Service Pack 1 (SP1)
Windows NT 5.0Windows 2000
Windows NT 4.0Microsoft Windows NT 4.0
Windows 98; Win 9x 4.90Windows Millennium Edition (Windows Me)
Windows 98Windows 98
Windows 95Windows 95
Windows CEWindows CE

Opera 9/10

У разработчиков Opera взгляд на использование строки пользовательского агента менялся от версии к версии самым кардинальным образом. На данный момент непонятно, каким образом можно переопределить строку для последних версий этого браузера. Однако если:

  1. зайти в opera:config#ISP;
  2. установить для id произвольную строку, например:
    Web Optimizator; Speed Up Your Website; https://webo.in/
  3. и перезапустить браузер.

то данное значение появится в строке пользовательского агента между U; и языком пользователя.

Читать дальше

Все комментарии (habrahabr.ru)