User agent
User agent — идентификационная строка
При посещении веб-сайта клиентское приложение обычно посылает
Использование веб-сайтами
Из-за доминирования отдельных браузеров в разные периоды в истории
Многие веб-мастера считают такой подход плохой практикой и рекомендуют создавать HTML-разметку настолько стандартизованно, насколько это возможно, чтобы корректно отображать страницы сайта на максимальном количестве браузеров.
Веб-сайты для мобильных телефонов часто вынуждены жёстко полагаться на определение User-Agent, так как браузеры на разных мобильных телефонах слишком различны. Поэтому мобильные веб-порталы обычно генерируют разные страницы в зависимости от модели мобильного телефона. Эти различия могут быть как небольшими (изменение размера изображений специально для меньших экранов), так и весьма существенными (формат WML вместо XHTML).
Строка User-agent также используется веб-мастерами для предотвращения индексирования «поисковыми пауками» некоторых страниц сайта, например когда индексирование определённых страниц не имеет смысла или конкретный «паук» создаёт большую нагрузку на сервер. Веб-мастер может использовать специальный файл
Подделка User-agent
Причины
Искусственная несовместимость
Использование веб-сайтами строки User-agent для изменения отображения страницы часто приводит к тому, что менее популярные браузеры не получают полного содержимого страницы, даже если они могут корректно его отобразить, а в некоторых радикальных случаях такие браузеры не получают вообще ничего[1]. В связи с этим многие браузеры стали «прятать» или «подделывать» User-agent.
Ранний пример этого — использование браузером
Когда Internet Explorer стал доминирующим браузером, такие конкуренты как Firefox, Safari и Opera встроили системы, позволяющие пользователю выбрать ложное значение User-Agent, такое же, что и у свежих версий Explorer. Некоторые из них (Firefox и Safari) копировали значение User-Agent полностью, другие (Opera) копировали значение User-Agent, добавляя истинное имя браузера в конце, что позже привело к тому, что строка содержит три имени и версии: первое зовётся как «Mozilla» (то есть Netscape Navigator); далее «MSIE» (Internet Explorer); и последнее, действительный браузер, такой как «Opera». Opera также позволяла полностью замаскироваться под Internet Explorer или Firefox, полностью скрывая имя «Opera».
В случае Safari строка User-Agent содержит 5 имён (Mozilla, AppleWebKit (идентификатор «движка»), «KHTML, like Gecko» (используемый Safari WebKit основан на движке KHTML, Gecko — кодовое имя движка последних версий Mozilla Firefox) и Safari. Таким образом, если сайт делает проверку на практически любой современный браузер (кроме Opera) — Safari её пройдёт. Другие браузеры на движке WebKit работают аналогично.
Кроме браузеров, другие программы, использующие протокол HTTP, к примеру
Подобная проблема продолжает существовать в мире браузеров, и поэтому начата кампания, способствующая тому, чтобы разработчики сайтов проектировали сайты в соответствии со стандартами, а не для какого-то любого определённого браузера.
Так, многие веб-сайты, созданные в 2005 году, лучше соответствуют стандартам, чем это было ранее в истории Веба. Однако, на некоторых сайтах всё ещё используются устаревшие скрипты JavaScript, в сущности, блокирующие работу других браузеров, помимо Internet Explorer или Netscape Navigator. Причина этого часто заключается в бездумном копировании старого кода, взятого с других сайтов, без полного понимания того, какой эффект этот код будет в действительности иметь.
Последствия
Одним из результатов подделки значения User-Agent является переоценка популярности соответствующего (обычно и без того популярного) браузера в
Уровни шифрования
Netscape, Mozilla, Opera и некоторые другие используют одну из этих букв для указания поддерживаемого уровня шифрования. Так как правительство США ранее не позволяло экспорт систем шифрования с ключом более 40 бит, выпускались разные версии с разным уровнем шифрования. «U» означало «USA» (США) (для версий с ключом шифрования в 128 бит), «I» означало «International» (международная) (браузер имел возможность шифровать с ключом в 40 бит и мог использоваться в любой точке мира), «N» означало «None» (без шифрования). Изначально версии с буквой «U» было разрешено загружать только жителям США, но с тех пор, как правительство США ослабило свою политику, экспорт систем шифрования высокого уровня теперь разрешён в большинство стран. Теперь браузеры распространяются только в версии с буквой «U» с поддержкой шифрования с ключом до 256 бит, так как необходимость в международной версии отпала.
Примечания
- ↑ Bug 334967 - (geckoisgecko) Tracking bug for sites broken by UA string change to not use "Firefox" (англ.). Bugzilla@Mozilla. Дата обращения: 17 июня 2010. Архивировано 25 мая 2014 года.
Литература
- Zakas, N. C. Chapter 9. Client Detection, User-Agent Detection // Professional JavaScript for Web Developers. — Wiley, 2011. — 840 p. — ISBN 9781118059517.
- Sikorski, M. and Honig, A. Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software. — No Starch Press, 2012. — P. 309—311. — ISBN 9781593274306.
Ссылки
- Bovens, Andreas Changes in Opera’s user agent string format (англ.). Dev.Opera (27 мая 2009). Дата обращения: 26 марта 2010. Архивировано из оригинала 5 марта 2012 года.
В статье есть список источников, но не хватает сносок. |