Сменить пароль и помолиться: почему аккаунты продолжают взламывать
Traffic Cardinal Traffic Cardinal  написал 22.10.2026

Сменить пароль и помолиться: почему аккаунты продолжают взламывать

Traffic Cardinal Traffic Cardinal  написал 22.10.2026
8 мин
0
23
Содержание

Давайте представим, что одним прекрасным днем вы вдруг обнаружили, что на вашем аккаунте помимо вас сидит еще кто-то. Что сделают 99,9% пользователей, которые узнали об интернете не 5 минут назад? Верно — жмакнут в ужасе «Завершить все сессии», или «Выйти со всех устройств», или еще что-то аналогичное по смыслу и целевому назначению. А после — со спокойной душой расслабят булки.

banner banner

Но что если мы вам скажем, что кнопка «Завершить все сессии» завершает не все сессии, кнопка «Выйти со всех устройств» выходит не со всех устройств и даже смена пароля далеко не всегда приводит к тому, что старый пароль перестанет подходить? Внезапно, да? (Если нет — ну извините, мы пишем для тех, кто не в теме. А если вы в теме — вы молодец). Как такое возможно? Об этом мы и расскажем сегодня.

Что такое сессия?

Начнем издалека. Допустим, рандомный Вася заходит в VK.

Что он делает? Верно, он:

  1. Вводит логин.
  2. Вводит пароль.
  3. Жмакает «Войти».
  4. Вводит код из СМС.

После этого Вася открывает страницу профиля, потом сообщения, потом мемы, потом еще 40 минут зачем-то смотрит фотографии человека, которого видел один раз в 2017 году. И ни разу за это время не вводит пароль повторно. Вопрос — VK вообще знает, что все эти действия совершает тот же самый Вася? Да. А знает он это потому, что в момент авторизации нашего Васяна создается сессия.

После успешной авторизации сервер выдает браузеру печеньку, которая буквально говорит: «Этот браузер уже прошел авторизацию. Пароль проверен. Можешь больше не спрашивать». Браузер сохраняет полученный идентификатор и отправляет его серверу вместе с последующими запросами. Кто создавал боты по инструкциям с нашего сайта, мог видеть, файлы .session — вот это оно же, только у Телеги, а не у VK.

Все понятно? Знаем, что нет — упрощаем до уровня «на пальцах»:

  • Браузер: «Привет, сервер. Я хочу открыть страницу аккаунта. Вот моя сессия 12345».

  • Сервер: «Окей. Сессия 12345 принадлежит Васе. Показываем аккаунт».

В реальности все, конечно, немного сложнее, но для понимания этого достаточно. Если же сервер решает, что сессия 12345 больше не должна существовать, например, потому, что вы нажали «Выйти», он может просто сделать ее недействительной. Браузер продолжит ее отправлять. Сервер продолжит ее видеть. Но в ответ сервер скажет: «Не, братан. Эта штука больше не работает».

Таков базовый принцип logout’а. Но есть нюанс… Сессия у аккаунта обычно не одна. И не две. А еще они бывают разных типов. А какие-то сессии — и не «сессии» вовсе. Stateless, например, когда сервер вообще не запоминает ваши «сессии», а просто проверяет, есть ли у вас «пропуск», и если он есть, вы можете делать что угодно.

А еще один гаджет — не равно одна сессия, ведь браузеры разные, да и профили в одном и том же браузере разные. И вообще, есть «не браузеры». А на телефоне есть еще и приложения. А у веба еще куча всякого-разного. И вот все это «сессии», которые не сессии.

Так, например, на одного обычного юзера, который просто сидит в соцсети и ничего интересного не делает, может быть видно сразу:

  • Сессия в Chrome.

  • Сессия в Firefox.

  • Сессия в приложении телефона.

  • Сессия в браузере телефона.

  • Отдельная OAuth-авторизация в «Ёлочке 2018».

  • Отдельные печеньки в разных профилях браузера, про которые он даже не в курсе.

  • Еще 100500 параллельных подключений везде, где он жмакнул «Войти с помощью»…

А еще, кроме cookie, есть access-токены. А есть refresh-токены, которые используются для получения новых access-токенов. А еще есть OAuth-токены, которые могут давать стороннему приложению доступ к определенным возможностям аккаунта. И API-токены, которые вообще могут существовать отдельно от обычной браузерной авторизации.

И вот жмешь ты такой «Выйти со всех устройств» — и оно вышло со всех компов и телефонов. А с того же API не вышло. Потому что там в принципе нет понятия «выхода» — только валидность или невалидность токена. Равно как не вышло и из «Ёлочки», ведь, вах-вах, реклы меньше заплатят, увидев, что в их «Ёлочке» сидят только под НГ.

И вот как со стороны обычного юзера заранее разобраться, что именно должна сделать кнопка «Выйти со всех устройств»? Убить браузерные сессии? Отозвать access tokens? Или отозвать refresh tokens? Или отозвать OAuth-доступы? Или завершить авторизацию сторонних приложений? Или вообще выйти везде и сразу? Или сразу, но не везде? Или, как в случае с Микрослопами (какой же сюююююр — автор в аху изумлении) выйти, но не сразу?

Спойлер — никак. Не может обычный юзер в этом разобраться. И необычный тоже. И даже специально обученный — не может. Скажем больше: далеко не всегда в этом может разобраться и админ того сервиса, где происходит отзыв токена. Причем речь сейчас не от техподах с админкой, а о реально шарящем и влияющем на что-то внутри платформы админе. Почему? Да банально потому, что не он эту платформу создавал. Вот попадется ему незадокументированный механизм авторизации, как в Google MultiLogin, и как он об этом узнает, пока не случится достаточно много прецедентов? Да никак.

И это, пожалуй, главное, что нужно вынести из всей этой духоты — у вашего аккаунта может одновременно существовать несколько независимых способов авторизации, часть из которых могут быть вообще скрыты от вас. И даже если вы отзовете все, что только можно, это вовсе не означает, что все «сессии-несессии» испарятся.

Как защититься?

И снова — никак. Невозможно защититься от угрозы, о существовании которой ты даже не знаешь.

Да, безусловно, можно:

  • Совершить все доступные действия по отзыву сессий и токенов.

  • Регулярно отзывать все разрешения на всякий случай.

  • Параноидально менять железо, чтобы никакой стиллер ничего не угнал.

Но по факту все это — как тушить пожар чашкой. Шипит красиво, а толку-то, если уже разгорелось? Посему лучшее, что можно сделать — использовать аккаунт так, чтобы доступ к нему не дал хацкерам ничего реально ценного. Просто представьте, что вы уже взломаны и ведите себя исходя из этих вводных. Ну и уж тем более не расслабляйте булки, если были реальные предпосылки считать, что вы в аккаунте не одни.

Саммари

Выход со всех устройств помогает не всегда, потому что далеко не все, что «входит», является устройством. А уж если сами разработчики платформы заложили в нее задокументированные механизмы параллельного входа — то хоть с бубном пляши, а толку будет ноль. Посему лучше решение — вести себя так, как будто с вами на аккаунте еще кто-то есть — чайку там предложить погрызть, налить печенек… :D

Здравствуйте! У вас включен блокировщик рекламы, часть сайта не будет работать!