Уважаемые Хабровчане! Вчерашний вариант статьи я полагал, что находится в черновиках. И посему отобразился недописанным. Предлагаю полную, дописанную версию
Многие он-лайн сервисы стремятся обезопасить аккаунты своих пользователей самыми различными способами. Кто-то отслеживает IP-адрес, сбрасывая кукисы при его изменении (так происходит на
Секлабе; вКонтакте просто просит подтвердить последние 4 цифры мобильника). У кого-то сессия живёт ограниченное время, заставляя пользователя авторизоваться снова и снова. У этих способов есть свои достоинства и недостатки. Но какой бы из механизмов не использовался, отслеживание параметров браузера и ОС пользователя придаст дополнительную защиту от угона аккаунтов (
как дополнительная защита, но ни в коем случае не основная). И очень странно, что я до сих пор не смог встретить ни одного сервиса, поддерживающего этот механизм защиты.
Задайтесь вопросом: в каких случаях при очередном посещении ресурса у пользователя кукисы будут аналогичны прошлому посещению, но изменятся данные браузера и используемой ОС (которые можно выцепить из User-Agent)? Только в 3-х случаях:
1. Пользователь авторизовался с разных компьютеров (например, дома и на работе) и по некоторым причинам использует разные браузеры.
2. Пользователь авторизовался с 1 компьютера в разных браузерах (этим будут страдать, пожалуй, только веб-разработчики и особо любопытные).
Либо те, кто загаживает ОС непонятными фенечками (привет любителям vkSaver)
3. У пользователя угнали сессию.
Детектить предлагается не весь параметр User-Agent, а тип браузера (IE, FF, Chrome, Safari и т.д.) и операционную систему (Windows, Linux, MacOS). Это решит проблемы ложного срабатывания при обновлении ПО на компе пользователя.
Да, User-Agent можно подменять. Но:
1. Довольно часто с этим никто из угонщиков сессии не парится.
2.
Подмену User-Agent можно определить (читайте ниже как).
Рассмотрим предлагаемый метод защиты в дополнение к имеющимся. В совокупности с классическими случаями угона сессии.