Почувствуй себя хакером: пара команд в консоли браузера — и ты в аккаунте.

ДИСКЛЕЙМЕР

Всё, что ниже, опубликовано только в познавательных целях. Никакого взлома и никаких эксплойтов тут нет, и автор ничего не изобретал. Команды, которые вы увидите, — штатные операторы самого MAX, спокойно живущие в продакшене. Зачем их там оставили — вопрос отдельный. Если у вас есть версия, напишите в комментариях, интересно собрать гипотезы. Делайте это только со своим аккаунтом. За то, что вы творите со своими же ключами, отвечаете вы, а не я.


СМС не приходит, пароль вы не помните, наводить камеру на QR лень. В веб-версию MAX можно зайти вообще без всего этого — тем, что браузер хранит у себя сам. Показываю по шагам, чтобы повторила даже бабушка.

Сначала по-простому, что происходит. Когда вы один раз вошли в web.max.ru, браузер сохраняет токен — длинную строку-пропуск, по которой MAX вас узнаёт. Этот токен можно скопировать и подсунуть в другой браузер. Он войдёт. Без пароля, без СМС, без QR. Всё.

Часть 1. Браузер, где вы уже вошли: берём токен

Нужен только токен — одна длинная строка. Больше ничего копировать не надо.

  1. Откройте web.max.ru, где видны ваши чаты.

  2. Нажмите Ctrl + Shift + J. Откроется чёрное окно консоли.

  3. Первый раз в этом браузере консоль не даст вставить команду — наберите руками allow pasting и Enter (один раз на браузер, потом не нужно). Без этого будет ошибка.

  4. Вставьте строчку и нажмите Enter — она копирует только токен в буфер:

copy(JSON.parse(localStorage.__oneme_auth).token)
  1. Внизу появится undefined — это нормально. Токен уже в буфере обмена, на экран он не выводится.

Если хотите увидеть токен своими глазами и скопировать руками — выполните вместо этого:

console.log(JSON.parse(localStorage.__oneme_auth).token)

В консоли появится просто длинная строка без кавычек — это и есть токен целиком, его и копируйте.

Если же вы открыли всё хранилище (console.log(localStorage.__oneme_auth)), то увидите такую строку (пример выдуманный):

{"token":"AbCd3Fg...очень длинная строка...Xy9Z","viewerId":123456789}

Отсюда копируйте только токен — то, что стоит в кавычках сразу после "token":. То есть от первого символа после "token":" и до кавычки перед ","viewerId". В примере это AbCd3Fg...очень длинная строка...Xy9Z. Фигурные скобки, слово token, viewerId и число — НЕ копируйте.

Консоль открыта; в строке ввода команда копирования токена. Вставляем её сюда.

После Enter внизу появляется undefined — токен уже в буфере.

Часть 2. Браузер, куда хотим войти: вставляем токен

Главное правило: сначала команда и Enter, и только потом — токен в появившееся окошко. В саму команду токен не вставляем.

  1. Откройте web.max.ru. Будет экран с QR. Так и нужно: значит, вы не залогинены.

  2. Нажмите Ctrl + Shift + J.

  3. Если в этом браузере ещё не разрешали вставку — allow pasting и Enter (как в Части 1).

  4. Вставьте команду и нажмите Enter (токен пока не трогайте):

m=prompt('Вставьте токен');if(m){localStorage.setItem('__oneme_auth',JSON.stringify({token:m.trim()}));location.reload()}
  1. Выскочит окошко. В него вставьте токен из Части 1 и нажмите OK.

  2. Страница перезагрузится и войдёт.

Экран с QR; в консоли команда вставки токена. Вставляем и жмём Enter.

Всплывающее окошко — сюда вставляем токен и жмём OK.

Готово: вошли без пароля, чаты загрузились.

Что важно понимать про сессию

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

  • пока никто не нажимает «Выйти», сессия живёт и работает сразу везде, где вставлен токен;

  • как только кто-то один выйдет из аккаунта (или завершит сессию в настройках устройств) — токен становится недействительным сразу для всех браузеров, а не только у того, кто вышел.

Поэтому просто закрыть вкладку — безопасно, токен живёт дальше. А «Выйти из аккаунта» рвёт вход всем, кто сидит на этом токене.


Никакого волшебства. Это то, что MAX держит у себя сам, и любой DevTools показывает за десять секунд. Что делать с этим знанием — решайте сами.

Комментарии (184)


  1. tema_rebel
    09.06.2026 20:29

    Блин, ну хз... Вы ожидали, что будут трекать браузер? Что-то мне подсказывает, что много есть сайтов, где можно вот так войти.

    Фингерпринтинг хотите?)


    1. Wesha
      09.06.2026 20:29

      Фингерпринтинг хотите?

      Ви так говорите, как будто его там всё ещё нет.


    1. Per_Ardua
      09.06.2026 20:29

      Я ожидал, что буду иметь полный контроль над тем какие устройства подключены, а также могу рассчитывать на прозрачность их подключения.


    1. Gromilo
      09.06.2026 20:29

      Ожидал что для браузера будут использовать httpOnly куку, а токен будет работать временно. В случае XSS смогут увести только временный токен.


    1. sansmaster Автор
      09.06.2026 20:29

      Насколько я понял, всё-таки не так много сайтов, где можно войти именно вот так, тем более мессенджеров. В WhatsApp, например, так просто не выйдет: ключи лежат в IndexedDB как non-extractable, отдельным значением их не скопировать. Перенести сессию можно только клонированием всей базы или профиля целиком, а это совсем другой уровень возни.

      Правильно токен держать в HttpOnly-куке или вообще не отдавать в браузер (BFF). Тогда его не прочитает ни один скрипт на странице: ни XSS, ни левое расширение не утащат. Это и есть разница с localStorage, откуда токен достаёт любой JS. Фингерпринтинг для этого не нужен.


      1. Okeu
        09.06.2026 20:29

        в whatsapp все очень сложно, там даже перенос переписки между девайсами - тот еще кейс.


        1. sansmaster Автор
          09.06.2026 20:29

          да. как ни странно в этом смысле он самый защищенный.


          1. Vasjen
            09.06.2026 20:29

            Что-то, защищенный? Это решето на уровне by-design.
            Вот мой реальный кейс, который я случайно воспроизвел. Есть смартфон, на нем установлен вотсапп. Им я не пользуюсь он лежит без дела с два года. Вставил в него новую симку вообще с кодом другой страны. За это время меня выкинуло из приложения и при запуске я вижу экран "Доброй пожаловать". Я ввожу новый номер, приходит смс и меня пускает в старое приложение, где вся переписка и чаты вообще от другого номера. Более того, вотсапп решил, что это мой теперь новый номер и в настройках профиля заменил старый номер на этот.

            А я нигде и не выбирал сменить номер, обновить профиль, меня на телефоне встретил стартовый экран приложения, напомню. Даже если я вдруг слепошарый и как-то не заметил подпись о входе под другим номером, то как будто стоило на старый номер прислать код, смс или что-то в таком духе, а не просто так запускать в систему.


            1. RTFM13
              09.06.2026 20:29

              Ну сохранённые ключи он посчитал первичными. Раз у вас есть к ним физический доступ значит вы их владелец.

              Это явно лучше чем первичная привязка к номеру.


              1. Vasjen
                09.06.2026 20:29

                Странный довод, с учетом что
                а) выкинуло из приложения, значит ключи истекли.
                б) для авторизации в приложение используется мобильный.
                в) и авторизация работает не как номер телефона + пароль, а телефон и смс на этот номер.


            1. umbral
              09.06.2026 20:29

              А как это? Переписка же end-to-end шифруется, сервера вотсапа ее не хранят, есть только бэкапы на личном google drive.


              1. Vasjen
                09.06.2026 20:29

                Ну хранится же в телефоне в бд приложения, ну или google drive, учетка гугла та же самая.


                1. umbral
                  09.06.2026 20:29

                  В смысле так же самая? Вы же сказали, что это был чужой аккаунт. К нему привязана чужая учетка гугла, не ваша. Вы как-то получили доступ к чужому бэкапу, либо локальному (как?), либо к чужому гугловскоу облаку (как???). Либо вы что-то напутали.


                  1. RTFM13
                    09.06.2026 20:29

                    По описанию, вацап решил привязку к телефону актуализировать. А приложение локально как стояло так и осталось стоять.


                    1. umbral
                      09.06.2026 20:29

                      А как чужие переписки на телефон попали? Вотсап не может сам их на телефон загрузить, их нет на его серверах.


                      1. Vasjen
                        09.06.2026 20:29

                        Смартфон на андроиде, учетка андроида одна и та же. Из приложения смартфона выкинуло на экран приветствия. Вошел в это же приложение введя другой, не связанный с изначальной учеткой ватсапом, номер. Меня авторизовало под старым акаунтом вотсапа с новым номером. На сколько это адекватно и правильно - решать Вам.
                        Все чаты, история и переписки на месте. Скорее всего, они хранятся локально, после нового входа в профиле сменился номер телефона на новый. Никаких дополнительных кодов, проверок и смс на старый номер не приходило.


                      1. umbral
                        09.06.2026 20:29

                        А, я вас неправильно понял.


                    1. Vasjen
                      09.06.2026 20:29

                      Все верно, именно так и было. Знай, что будет такая дичь – записал бы видео. Сейчас искусственно хз как повторить, возможно принудительно разлогиниться в приложении и попробовать войти под каким-то другим номером.


                      1. RTFM13
                        09.06.2026 20:29

                        Телефон он просил не для авторизации, а наоборот чтобы быть уверенным что это ваш номер т.к. он используется для идентификации. Т.е. он проверил не потеряли ли вы доступ к телефонному номеру.

                        А авторизует он вас по конкретному экземпляру установленного приложения. При необходимости можно еще пин/пароль поставить.

                        Я против привязки чего либо к телефонным номерам, но в рамках их дурацкой парадигмы привязки всего к телефону это логичное действие.

                        И это не имеет отношения к первоначальной теме о времени авторазлогинивания дополнительных сессий.


    1. Okeu
      09.06.2026 20:29

      openai через перекупов так и покупается подписка))


  1. sansmaster Автор
    09.06.2026 20:29

    Так просто, как в MAX, ни в один другой мессенджер не зайдёшь. В Telegram, например, не один токен, а несколько ключей (по дата-центрам), и лежат они вразнобой — собрать сложнее. В WhatsApp токен в таком виде вообще не хранится: ключи в IndexedDB, по отдельности не вытащить. А в MAX — одна строчка, 10 секунд работы. Для мессенджера, претендующего на цифровой ID… ну такое, как по мне.


    1. Freeman_RU
      09.06.2026 20:29

      Ерунду не пишите. Веб-версии у всех одинаковые, ничего нового ни в одном мессенджере не придумали (да и вообще ни в одной программе). Сервер не знает откуда вы посылаете данные - и будет их отрабатывать точно также. Попробуйте сами - зайдите в Телеге через веб-интерфейс и потом тем же способом скопируйте всё из localStorage - эффект будет тем же самым. Обычный токен жизни. Он и у OAuth также работает.


      1. ze7
        09.06.2026 20:29

        Не знаю, кто из вас пишет ерунду, но что-то с трудом верится, что в нормальных проектах jwt хранится в локалсторадже.


        1. LoveMeOrHateMe
          09.06.2026 20:29

          А какая в целом разница? Получить этот токен, хоть его куда распихай по браузеру вопрос одного скрипта, который уже выполняется у жертвы. Довольно провокационная статья, такая авторизация это база в очень многих проектах.


          1. ze7
            09.06.2026 20:29

            1. sansmaster Автор
              09.06.2026 20:29

              Спасибо, не видел этот гайд. Там всё подробно описано как нужно и как не нужно.

              Правильно токены хранят не в localStorage: его читает любой скрипт, при XSS токен сразу утекает. Нормальный способ это HttpOnly + Secure + SameSite кука: JS её не прочитает, браузер сам подставляет, CSRF закрыт. Ещё вариант: короткий access-токен в памяти, refresh в той же httpOnly-куке с тихим обновлением. Самый чистый это BFF: токен вообще не отдают в браузер, он живёт на бэкенде, фронт ходит по httpOnly-сессии.

              А в MAX токен лежит открытой строкой в localStorage. То самое, от чего гайд предупреждает.


              1. tema_rebel
                09.06.2026 20:29

                Плюсанул. Раньше не особо задумывался. Но если это реально так просто (в смысле «сделать нормально»), то да, есть вопросики к «национальному мессенджеру»


                1. Wesha
                  09.06.2026 20:29

                  если это реально так просто (в смысле «сделать нормально»), то да, есть вопросики к «национальному мессенджеру»

                  Ви так говорите, как будто они только что появились, а до этого вопросиков к нему вообще никаких не было.


              1. ze7
                09.06.2026 20:29

                Да я хз, тут на хабре какая-то секта хранителей токена в localStorage орудует. Не первый раз замечаю. Одни безапеляционно такую дичь несут, а другие их плюсуют :) Да, браузер небезопасное место для хранения сенситив данных.
                Но одно дело положить деньги на стол, а другое в сейф. И так и так грабители обнесут, но во втором случае это будет сделать сложнее и займёт у них больше времени.


                1. Freeman_RU
                  09.06.2026 20:29

                  Есть токены которые просто не поместятся в куки. И если вы так не доверяете своему же фронту, что у вас возможен XSS, то утечка токена не самая большая ваша проблема.


                  1. ze7
                    09.06.2026 20:29

                    Лимит размера у куки реальный, но это аргумент за то, чтобы не раздувать токен, а не за localStorage. XSS - это не про доверие своему фронту. Уязвимость прилетает через сотни сторонних зависимостей, аналитику, рекламу или скомпрометированный npm-пакет, и весь смысл httpOnly в том, чтобы токен нельзя было украсть даже при XSS, который вы не смогли предотвратить. А украденный токен это как раз большая проблема - в отличие от действий в моменте, его можно вынести наружу и использовать вне браузера жертвы, с другого устройства и после закрытия вкладки.


                    1. Freeman_RU
                      09.06.2026 20:29

                      Пускать аналитику, а уж тем более РЕКЛАМУ на страницы, где есть секретные данные - это выше моего понимания :) Точно также как тянуть пакеты без проверки при каждом билде и без конкретной версии. В целом конечно да, вы правы, но иногда другого выхода нет (к примеру, API,которые просят класть токен в заголовок). Поэтому решаем проблему с XSS для начала, а потом уже всё равно как что хранить. Но это больше философский спор уже :)


                      1. umbral
                        09.06.2026 20:29

                        Ага, сначала обязательно нужно навести порядок на всей планете, и только потом можно за уборку у себя дома приниматься.


              1. vanxant
                09.06.2026 20:29

                Доооо, кражу кук из браузера так с девяносто лохматого года и не придумал никто)


        1. degvit
          09.06.2026 20:29

          Обычно такое в куках хранят ))


      1. izh-vii
        09.06.2026 20:29

        Если в телеге именно так, выходит что это не уязвимость, а стандарт индустрии.


        1. Cdr80
          09.06.2026 20:29

          По-моему, это уязвимость, либо бэкдор, т.к. хакеру украсть достаточно ключик, и без вашего ведома будут всё читать, даже сообщения слать.

          И не понятно, зачем список устройств есть?


          1. vadimr
            09.06.2026 20:29

            С другого устройства это не сработает. Речь о том, что на одном и том же компьютере неважно, какой программой открывать страницу.


            1. Cdr80
              09.06.2026 20:29

              можно копировать папку десктопной версии телеги на разные пк

              с другой стороны, это удобная фича


              1. vadimr
                09.06.2026 20:29

                Сервер вряд ли продолжит сессию на другой адрес. Разве только если оба компьютера сидят за одним NAT (или в одном VPN). Но работу из VPN вроде как Макс не одобряет.


                1. tuxi
                  09.06.2026 20:29

                  Вопрос смены ip в рамках одной сессии - дискуссионный. С одной стороны, есть клиенты на мобильном интернете, перемещающиеся в пространстве, с другой стороны, есть системы детекции ботов, которые сигнализируют, что нас парсят/дидосят/что-то еще. Поэтому обычно используют разумный баланс.


                1. ogost
                  09.06.2026 20:29

                  Сессия десктопной телеги спокойно переживает переезд с одного адреса на другой. Берёте два компа/ноута, один подключен через стационарный провайдер, другой через мобильный (tethering например). Флешкой переносите телегу туда-сюда. Всё работает. Правда, я не пробовал запускать одновременно, как-то нужды не было.

                  дисклеймер: сей финт ушами я проводил пару лет назад, возможно сейчас это не сработает


                  1. sansmaster Автор
                    09.06.2026 20:29

                    интересно - попробуем.


                  1. vanxant
                    09.06.2026 20:29

                    зачем так сложно, просто включаете-выключаете квн. Ни телега (веб и десктоп), ни вацап (веб и десктоп) никак на это не реагируют. Ибо это смерть для людей на мобильном тырнете.


                    1. ogost
                      09.06.2026 20:29

                      Я отвечал на этот комментарий, там речь шла не только о смене IP, но и о переносе с компа на комп.


                  1. atd
                    09.06.2026 20:29

                    Правда, я не пробовал запускать одновременно

                    я пробовал, работает


        1. sansmaster Автор
          09.06.2026 20:29

          Я не писал что это уязвимость . Я дал инструкцию как это сделать ....ну и честно удивила простота . Я это случайно обнаружил когда делал форк рабочий . В статье нет провокации только ирония . Запомнить эти команды действительно сможет и бабушка и показать фокус соседке ))


      1. Cdr80
        09.06.2026 20:29

        Более того, можно копировать папку десктопной версии телеги на разные пк, отображаться будет, как одно подключение. Реально сидишь с кучи разных компов, хоть с флешки пускай, никаких паролей повторно не запрашивает.


      1. sansmaster Автор
        09.06.2026 20:29

        попробовал - чуть сложнее , бабушка сразу не справиться но вы правы. вводим например это copy(JSON.stringify(Object.fromEntries(Object.entries(localStorage).filter(([k])=>/^dc(\d+_auth_key|\d+_server_salt)?|^user_auth|^account\d+$/.test(k))))) , берем таким образом все ключи авторизации потом вот так их аккуратно вставляем const o=JSON.parse(prompt(‘вставь ключи Telegram’));for(const k in o)localStorage.setItem(k,o[k]);location.reload() (после вставляем ключи ). Но тут все таки пришлось повозиться . у телеграмм это не один ключ а связка MTProto-ключей. А что по поводу whatsup скажите ? как там войти ,я пока не смог .


    1. Medeyko
      09.06.2026 20:29

      А какой смысл в том, что в Telegram чуть сложнее? Для добросовестного использования, когда нужно перенести свою собственную сессию - это вредно. А недобровестный будет делать не руками, а скриптом, которому без разницы - один ключ или несколько.

      Честно говоря, обманчивая псевдозащищённость Telegram'а и Whatsapp'а, на мой взгляд, это только хуже - вводит людей в заблуждение. Они разве что чуть-чуть безопасней Макса, но если с Максом люди ждут подвоха, то с этими бдительность теряется. По мне так чума на все эти дома.

      А вся эта псевдобезопасность только мешает пилить свои кастомные клиенты (я вот навайбкодил себе немножко на Python'е благодаря необфусцированности протокола Макса; но, конечно, правильнее было бы, если бы они его открыли и опубликовали). Да и просто пользователям, чуть-чуть выбивающимся из привычной массы, может создавать неудобства.

      (Впрочем, сами по себе вопросы по такой примитивной реализации хранения ключей в штуке, через которую подтверждаются Госуслуги, справедливые.)


      1. sansmaster Автор
        09.06.2026 20:29

        max симку не блочил? на венде приложение ?


        1. Medeyko
          09.06.2026 20:29

          Тьфу-тьфу-тьфу, не блочил. Но вот реально боюсь, что благодаря подобным статьям рано или поздно заблочат. Поэтому использую очень аккуратно и ограниченно. Ну, пока ещё можно иметь несколько SIM-карт и несколько эккаунтов в Максе. Был бы открытый протокол - я был бы счастлив.


          1. sansmaster Автор
            09.06.2026 20:29

            Я как раз хотел наработки свои показать сообществу обсудить . Думаете не стоит ? меня блокировали неоднократно но причину я нашел - решил .


            1. Medeyko
              09.06.2026 20:29

              Вы правы, стоит показать и обсудить. Я не очень удачно выразился. Я не имел в виду, что нужно молчать в тряпочку. Я подразумевал, что регулярное гыгыгыкань "а, какие лохи, а, какая тупая дыра" в отношении достаточно рядового недостатка (которым, как выяснилось, в целом обладает и Telegram) приведёт к избыточной реакции. Какой-нибудь начальник какому-нибудь менеджеру укажет на это гыгыгыканье, скажет исправить, и тот организует исправление с большим запасом, закрыв, обфусцировав, поставив микроскопические таймауты и параноидальное отслеживание фингерпринтов, которые будут создавать кучу проблем пользователям, но зато себя этот менеджер на будущее прикроет полностью, и начальнику отчитается.

              Но к Вас у меня претензий нет. Вы правильно написали, и тон в статье выдержали корректный. Я за то, чтобы делиться информацией и обсуждать. Спасибо!


              1. sansmaster Автор
                09.06.2026 20:29

                Спасибо за обратную связь .


      1. inkelyad
        09.06.2026 20:29

        А вся эта псевдобезопасность только мешает пилить свои кастомные клиенты

        ...

         но, конечно, правильнее было бы, если бы они его открыли и опубликовали

        А потом злые люди убалтают жертву поставить костомный клиент с недокументированными особенностями. Учитывая, куда этот MAX тянут - последствия могут быть сильно неприятными. Это, конечно, удручает, но иногда отсутствие возможности написать альтернативу - скорее полезно, чем вредно.


        1. Medeyko
          09.06.2026 20:29

          Коллега, Вы о чём? Злым людям открытый протокол ничем не поможет - закрытый протокол уже неоднократно отреверсен, и даже кастомные клиенты какие-никакие тоже есть. Просто добровестное использование по лезвию бритвы ходит, потому что как справедливо написали выше, Макс в любой момент может забанить использовательзующих неофициальные клиенты, это грустно. А вот у злых людей такой проблемы нет - им пользователей не жалко, у них задача одноразовая, вытянуть из "пользователя" всё, что можно, и кинуть.

          Это не то место, где работает security through obscurity.


          1. inkelyad
            09.06.2026 20:29

            Коллега, Вы о чём?

            В том смысле, что само знание "альтернативных клиентов нет и не будет" - немного останавливает от установки того, что злые люди предлагают поставить, особенно если социальной рекламой долбить.

            А если протокол опубликован и несколько альтернативных клиентов как-то эксплуатируются --- то убалтать поставить еще один "вот этот точно самый удобный" заметно легче.

            Так что увы, открытый протокол и существование этих самых альтернативных клиентов - злым людям именно помогает. Насколько сильно - вопрос, но помогает.


            1. Medeyko
              09.06.2026 20:29

              Вот чиновники такими совершенно ничем не обоснованными рассуждениями и руководствуются - "как бы чего не вышло". Вообще никак не останавливает от установки и уболтать не легче. Те, кто попадается на разводки, не облают знанием о том, могут ли быть альтернативные клиенты или нет.

              Сами прикиньте - у Телеги есть альтернативные клиенты давно, они вполне легальны и Телега их разрешает. Как Вы сами-то думаете, среди тех, кто достаточно компетентен, чтобы поставить себе альтернативного клиента, во сколько раз меньше процент попавшихся на удочку мошенников по сравнению с общей массой?

              А то, что Вы, похоже, думаете, что альтернативных клиентов быть не может, и пытаетесь строить на этом безопасность - это ухудшает, а не улучшает ситуацию. Это только увеличивает уязвимость людей, которым даже вдалбливаемое из каждого утюга "никому не сообщайте коды, приходящие по SMS" не мешает эти коды сообщать. Ваше "решение" - это ложная видимость решения, при том что очень многие полезные способы использования оно сильно затрудняет. Приходится шлагбауму, например, приделывать несколько разных протоколов связи - один на случай введения белых списков, другой на случай, если Макс забанит SIM-карту и т.п.

              Даже если вы пропечатаете в подкорке всех жертв, что альтернативные клиенты используют только мошенники, настоящие мошенники просто назовут то же самое не альтернативным клиентом, а просто более новой более совершенной самой что ни на есть официальной версией, имеющей нужный "для расследования", "для удобного сообщения показаний счётчиков" или ещё для чего-нибудь функционал.


              1. inkelyad
                09.06.2026 20:29

                Те, кто попадается на разводки, не облают знанием о том, могут ли быть альтернативные клиенты или нет.

                Попадаются абсолютно все, только в разной степени. Это разновидность фишинга.

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

                Сами прикиньте - у Телеги есть альтернативные клиенты давно, они вполне легальны и Телега их разрешает. Как Вы сами-то думаете, среди тех, кто достаточно компетентен, чтобы поставить себе альтернативного клиента, во сколько раз меньше процент попавшихся на удочку мошенников по сравнению с общей массой?

                Телега не дает всех тех возможностей, что дают приложения банков, госуслуг и которые вот-вот будет давать MAX.


                1. Medeyko
                  09.06.2026 20:29

                  Попадаются абсолютно все, только в разной степени.

                  Во-первых - нет, не все. Только малая часть из сталкивавшихся с фишингом, попадались на него.

                  Во-вторых - это критически важно, что в разной степени. Если компетентность человека позволяет видеть фишинг, то и в предложении поставить ещё один альтернативный клиент он фальшь увидит.
                  Раз влияние поддержки альтернативных клиентов статистически не значимо, то нет никакого смысла существенно уменьшать полезность продукта для пользователей ради "купирования" высосанной из пальца опасности. Ну, единственно, конечно, есть смысл для какого-нибудь чиновника/менеджера, конечно, который может отчитаться, как он геройски защитил граждан, закрыв своей грудью амбразуру стррррашную уязвимость, а можно даже в прессе побить себя кулаком по груди.

                  Неприятно, да, но как иначе защищаться - совершенно непонятно.

                  Что тут непонятного? Всё предельно понятно. Даже если принять на веру, будто нельзя столь чувствительные данные отдавать в альтернативные клиенты (а это не так - на самом деле можно, но пусть), можно банально предусмотреть в протоколе ответ сервера "данная информация не отдаётся неофициальным клиентам, пожалуйста, воспользуйтесь для её просмотра официальным клиентом", вот и всё.

                  Непосредственный доступ к самой чувствительной информации в большинстве случаев не нужен. А вот легальный и документированный доступ к обычной информации ("телеграммного" уровня), а также к уведомлениям о том, что пришла чувствительная информация, для которой надо лезть в официальный клиент - ещё как нужен. Чтобы делать шлагбаумы или там индикаторы на Ардуинке.

                  Безопасность по сравнению с попыткой полного запрета увеличится, потому что уменьшится количество людей, мотивированных на обход запрета - и, соответственно, количество разбирающихся в том, как запрет обойти.


                  1. inkelyad
                    09.06.2026 20:29

                    Даже если принять на веру, будто нельзя столь чувствительные данные отдавать в альтернативные клиенты (а это не так - на самом деле можно, но пусть), 

                    Аргумент не совсем в этом. В нормальный альтернативный - действительно, ничего страшного. Аргумент в том, что с учетом предполагаемых возможностей - инициатива злодеев сделать и всучить жертвам альтернативный клиент с злодейским функционалом - резко увеличивается.

                     А вот легальный и документированный доступ к обычной информации ("телеграммного" уровня), а также к уведомлениям о том, что пришла чувствительная информация, для которой надо лезть в официальный клиент - ещё как нужен. 

                    Вот если идет речь только о 'бытовой' части протокола - я буду за.

                    Но я сильно сомневаюсь, что чисто 'бытовая' часть настолько хорошо разделено и что отправить/получить сообщение от шлагбаума и отправить сообщение в учреждение или получить из банка(помним про желание отправлять защитные коды банков именно в MAX?) -- как-то существенно отличаются.

                     Чтобы делать шлагбаумы или там индикаторы на Ардуинке.

                    У меня другое восприятие. Делать вот это все в MAX - ну, несколько странно. Как и использование его в качестве 'бытового мессенджера'.

                    Я рассматриваю его именно как госмесседжер для общения со всем тем офицозом, что там государства имеется. Приложение-компаньон для госуслуг. Отсюда и позиция 'никаких сторонних клиентов'.

                    Ну да, они сами зачем-то тянут в сторону 'бытового', но это они зря и, надеюсь, одумаются.


                    1. Medeyko
                      09.06.2026 20:29

                      Аргумент не совсем в этом. В нормальный альтернативный - действительно, ничего страшного.

                      Коллега, именно в этом. Я просто не хочу растекаться по древу и расписывать сценарии, как можно достаточно достаточно безопасно и довольно удобно для всех организовать, надо просто захотеть это сделать и чуть-чуть подумать...

                      У меня другое восприятие. Делать вот это все в MAX - ну, несколько странно.

                      Нет, не странно. Просто Вы, по-моему, немного поверхностно смотрите, потому что не задумывались об этой стороне вопроса.

                      Вы хотите, чтобы у Вас связь с оборудованным камерой шлагбаумом или датчиком проникновения работала, когда включены "белые списки"? Ну, или, там, зимой перед выездом на дачу включить отопление, чтобы приехать не в холод? Не хотите? А большинство - хотят.

                      Вы не хотите иметь возможность прочитать на обычных устройствах (а не специально выделенном для Макса) уведомление о том, что завтра - какое-нибудь там собрание родительского комитета? А многие люди хотят иметь такую возможность.

                      Вы не хотите, чтобы у вас на десктопе или на "Ардуинке" крутилась программа, которая отсортировывала бы по нужным вам сложным критериям важные и неважные сообщения, приходящие в Макс от коллеги/друзья и писала бы ненавязчиво о важных? А я вот хочу.

                      И нет, идея, что если коллеги/друзья/родительский комитет пользуются Максом, то надо с ними порвать или заставить всех перейти на какой-нибудь Bip - это плохая идея, она очень плохо работает.

                      Я не хочу зависеть от официального клиента Макса на своём основном оборудовании, но при этом не хочу в ряде случаев пропустить сообщения.


                      1. inkelyad
                        09.06.2026 20:29

                        Нет, не странно. Просто Вы, по-моему, немного поверхностно смотрите, потому что не задумывались об этой стороне вопроса.

                        Возможно. Но смотрим на Федеральный закон от 24.06.2025 N 156-ФЗ. Про 'Многофункциональный сервис обмена информацией'. Читаем. Там 'телеграмное' общение между людьми вообще даже не рассматривается, если я правильно читаю. А есть достаточно длинный список государственно-официальных вида

                        информационно-технологическое взаимодействие информационных систем, используемых для предоставления государственных и муниципальных услуг и исполнения государственных и муниципальных функций в электронной форме

                        и

                        подпись документов при помощи ЭП

                        А MAX именно этой штукой назначили(Распоряжение Правительства Российской Федерации от 12.07.2025 № 1880-р). Так что да, именно как сервис для всего этого официоза и я его и воспринимаю. А то что они делают, пытаясь стать 'бытовым' - это что-то непонятное и непонятно, с какой стати.


                      1. Medeyko
                        09.06.2026 20:29

                        Коллега, мы же обсуждаем реальный Макс и реальные потребности людей. Если Вам, исходя из прочтения каких-то официальных документов кажется, будто Макс не используется в первую очередь как аналог Телеграма и Whatsapp'а, а у людей нет потребности в клиентах, отличных от официального - простите, Вы очень сильно ошибаетесь. А Ваше личное отношение к Максу, и для чего его использовать будете лично Вы - право слово, это Ваше личное дело - реальность Вы этим не измените.


        1. php_master
          09.06.2026 20:29

          убалтают жертву поставить костомный клиент

          Что мешает уболтать на официальном клиенте нажать Ctrl + Shift + J, ввести в открывшееся окно нужный код и продиктовать появившийся токен?

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


        1. RTFM13
          09.06.2026 20:29

          А потом злые люди убалтают жертву поставить костомный клиент

          Ну будут убалтывать поставить "еще более официальный клиент". Или "безопасный клиент".


  1. tuxi
    09.06.2026 20:29

    Нажмите Ctrl + Shift + J. Откроется чёрное окно консоли.

    У вас ошибка. Не черное, а белое окно.

    А если говорить серьезно, это же ничем не отличается от сессионной куки, которую можно скопировать не то, чтобы в другой браузер, можно ваще в HttpClient подсунуть и использовать в свое удовольствие, пока она не просрочится на стороне сервера.


    1. Markscheider
      09.06.2026 20:29

      А мне вот интересно: если держать сессию только в браузере (выключив макс на материнском смартфоне) - сколько такая сессия проживет? Где-то в глубинах кода приписан срок протухания токена?


      1. sansmaster Автор
        09.06.2026 20:29

        это не связанные сессии - на смартфоне и токен из браузера . на смартфоне можно выйти это никак не повлияет на токен из браузера ( сессии разные ).По времени думаю не ограничено ( нужно проверить ).


        1. Markscheider
          09.06.2026 20:29

          на смартфоне можно выйти это никак не повлияет на токен из браузера

          Это понятно (и уже проверено :)).

          Вопрос в продолжительности сольной работы веб-версии.


        1. RTFM13
          09.06.2026 20:29

          У вацапа например ограничены. Пару недель вроде.


          1. Medeyko
            09.06.2026 20:29

            Это гениально, право слово! Вот это та самая видимость безопасности, от которой только хуже. Мошенник не будет ждать две недели, чтобы сделать свои чёрные дела.

            В большинстве сценариев мошенничества такое "ограничение" - это мёртвому припарка... (От продолжительного чтения переписки посторонним может помочь, но здесь бы гораздо больше помогло бы обнаружение таких пассивно читающих устройств и уведомление об этом пользователя.)


            1. RTFM13
              09.06.2026 20:29

              Ну это очевидно не от мошенников. От мошенников там другие достаточно эффективные средства.


    1. sansmaster Автор
      09.06.2026 20:29

      У меня чёрное.)) Тему в DevTools меняют через F1, так что у всех по-разному ты прав, в статье формулировку поправлю.

      По куке: тут и не кука. У MAX вход лежит строкой в localStorage берёшь её из консоли и вставляешь в другой браузер, входит. Куку, если она HttpOnly, из консоли так просто не вытащишь, видно только во вкладке хранилища. А эта строка лежит открыто и копируется одной командой. Так что не «как кука», а доступнее. ну и это мессенджер все таки как я уже сказал претендует на цифровой id . c whatsup или телегой такой фокус бы не удался. суть то в том что это сделать просто .


      1. Freeman_RU
        09.06.2026 20:29

        >>Куку, если она HttpOnly, из консоли так просто не вытащишь

        document.cookie


        1. ze7
          09.06.2026 20:29

          document.cookie не возвращает cookie с флагом HttpOnly - это и есть смысл флага.


          1. Wesha
            09.06.2026 20:29

            Вы ещё скажите, что его в Development Tools -> Network -> Headers -> Request Headers -> Cookie: не видно и скопировать невозможно!


            1. ze7
              09.06.2026 20:29

              Можно, но где я об этом писал? Я чисто про document.cookie. Утверждение товарища выше ошибочно


              1. Freeman_RU
                09.06.2026 20:29

                согласен, мой косяк, не внимательно читал.


            1. p07a1330
              09.06.2026 20:29

              Вы еще скажите, что JS-инъекция доступ к девтулзам имеет


              1. Wesha
                09.06.2026 20:29

                Так ведь обсуждается не задача «как бы малвари незаметно спереть этот ключ», а «как бы хозяину браузера получить к нему доступ».


    1. Wesha
      09.06.2026 20:29

      У вас ошибка. Не черное, а белое окно.

      У кого белое — а у кого чёрное, бвана!


  1. Groramar
    09.06.2026 20:29

    Тут новости пролетели:

    MAX пропал из Google Play — пользователи сообщают, что мессенджер больше не отображается в магазине приложений во всех регионах.

    Давай досвиданья!


    1. sansmaster Автор
      09.06.2026 20:29

      Проверил - действительно нет ....весело . Но с андройд проще есть сторонним магазины и возможность установить на прямую apk. Вот с ios сложнее . Кстати на днях выложу форк для ios . Тестирую пока все работает . Через тест флайт можно будет установить или себе залить и пересобрать свой max . .. если он вообще кому нибудь нужен ещё .


    1. 0ka
      09.06.2026 20:29

      У меня отображается и скачивается


      1. sansmaster Автор
        09.06.2026 20:29

        Пишут что и Хуавей удалила но у меня пока есть в appgallery а вот в google play ещё раз проверил уже нет . И похоже это не связанно с санкциями .


    1. Bacasancho
      09.06.2026 20:29

      Пишу из рандомного региона - макс на месте.


    1. Astralist
      09.06.2026 20:29

      Может потому что Max стал Макс? у меня в гугл плей есть


    1. Contender
      09.06.2026 20:29

      Никуда не пропал, вроде.

      *
      *


      1. DungeonLords
        09.06.2026 20:29

        Это не так работает. Удаленные из магазина но уже установленные у пользователя приложения у пользователя не удаляются. Так что ваш тест не релевантен. Удалите приложение и если вы всё ещё можете его установить обратно, значит приложение доступно в магазине.


        1. aik
          09.06.2026 20:29

          Ставить я не хочу, но в поиске гугломаркета оно отображается с кнопкой "установить".


        1. artemerschow
          09.06.2026 20:29

          del


        1. Tim635
          09.06.2026 20:29


    1. salnicoff
      09.06.2026 20:29

      К сожалению, рано обрадовались... Пишут, что они исчез из всех регионов, кроме этого...


      1. aik
        09.06.2026 20:29

        В Казахстане доступен.


      1. sansmaster Автор
        09.06.2026 20:29

        В каком регионе остался рф?


        1. salnicoff
          09.06.2026 20:29

          РФ? Наверное, в РФ...


    1. Perycalypsis
      09.06.2026 20:29

      Макс никогда не ставил.

      Сейчас проверил из своего забугорья - в гугл плей макс присутствует, в самсунговском сторе тоже в наличии.


      1. sansmaster Автор
        09.06.2026 20:29

        Я в рф живу , но ак Американский (чтобы оплачивать приложения) и у меня нет max теперь .


        1. ajijiadduh
          09.06.2026 20:29

          повезло


          1. sansmaster Автор
            09.06.2026 20:29

            )))


        1. mrkerzak
          09.06.2026 20:29

          На айфонах просто меняешь регион в настройках телефона и всё доступно становится. квны так перебирали в начале блокировок. На андроиде тоже меняется но не так просто вроде.


    1. RTFM13
      09.06.2026 20:29

      Сложно удержаться


  1. mmMike
    09.06.2026 20:29

    Я так смотрю что наступил момент смирения. Статьи про эту дрянь перестали набирать минусов. Все по советскому анекдоту

    “третий секретарь райкома”: - завтра повесят каждого 10-го

    “голос из зала”: - веревку свою принести или профком обеспечит?


    1. c8ox2
      09.06.2026 20:29

      Минуса - это конечно смело, очень смелая борьба.


      1. mmMike
        09.06.2026 20:29

        Провокатор из ФСБ? Все сделаете ради очередного звания…


        1. c8ox2
          09.06.2026 20:29

          Ну а твой комментарий это о чем? Ты сам что делаешь? Смирился или мужественно борешься минусами?)

          Мне иногда кажется, что украинцы правы: в России не осталось мужчин в оппозиции. Настоящие мужчины или свалили или в тюрьме.


          1. mmMike
            09.06.2026 20:29

            Точно! провокатор на зарплате.


            1. c8ox2
              09.06.2026 20:29

              Скучно. На РФ если ты не в курсе, то закрыть могут любого в любое время. Безо всякого повода. Ну а ты обычный трус. Как ты детям в глаза смотришь?


    1. RulenBagdasis
      09.06.2026 20:29

      А почему должны набирать минусы статьи, которые рассказывают про уязвимости и опасность этого поделия?


    1. aik
      09.06.2026 20:29

      А зачем нормальной статье ставить минус?

      Минус ставится пропаганде, рекламе и т.п.


      1. Wesha
        09.06.2026 20:29

        Минус ставится пропаганде, рекламе,

        ...«мне просто твоя рожа не нравится»,...


        1. aik
          09.06.2026 20:29

          Я не считаю это достаточной причиной для минуса.


          1. Wesha
            09.06.2026 20:29

            Я не считаю это достаточной причиной для минуса.

            Спешу Вас огорчить: Вы в меньшистве — возможно, подавляющем. Это я Вам ответственно как +516/-517 говорю.


  1. AWV
    09.06.2026 20:29

    В чем ваше беспокойство? Срок действия токена наверняка короткий, так что если ваш токен как-то украдут, через некоторое время Макс перестанет его принимать. Если нет refresh-токенов.


    1. Gromilo
      09.06.2026 20:29

      А рефреш токен тоже в локал-стородже, шучу. Вообще использовать рефреш токен на сайте - не очень правильно. Тут лучше кука подходит.


      1. oWeRQ
        09.06.2026 20:29

        Многие неправильно понимают access/refresh token

        Для аутентификации:
        1. Пользовательно должен отсылать: логин, пароль и идентификатор устройста
        2. Бекенд должен сохранить запись: id пользователя, идентификатор устройста, хеш refresh токена
        3. Бекенд должен вернуть access/refresh токены с разным временем жизни, access < refresh

        Время жизни access должно быть минимально, время жизни refresh задает через какое время неактивности надо заново аутентифицироваться. При приближении или истечении жизни access, клиент должен послать refresh token и получить новую связку, при этом старый refresh token должен инвалидироваться.

        В случае компроментации access/refresh токенов, при попытке обновить токены злоумышленником, жертву должно выкинуть после истечения access токена, при повторной аутентификации все токены для идентификатора устройста должны инвалидироваться, что уже в свою очередь выкинет злоумышленника, либо на другом устройстве можно вручную вырубить скомпроментированнное устройство.

        Задача refresh token не дать использовать постояно клон сессии устройства. Идентификатор устройста для веб версии может быть случайно сгенерен один раз.


        1. Gromilo
          09.06.2026 20:29

          Это же вариант для приложения, там рефреш - норм. А вот если в браузере, то рефреш никак не защитить: всё что можно передать из js будет повторено нападающим.

          Можно привязяться к TLS-сессии, но это до первого сброса соединения


  1. MEGA_Nexus
    09.06.2026 20:29

    Так это же обычный угон куки получается (Cookie Hijacking / Session Hijacking). Таким образом можно красть авторизованную сессию от любого сайта. Авторизовались на одном компе, скопировали с него куки на другой комп и сайт считает, что на втором компе вы тоже авторизованы, хотя никакие логины и пароли вы там не вводили.


    1. vadimr
      09.06.2026 20:29

      Как минимум ещё адрес должен совпасть.


    1. FSA
      09.06.2026 20:29

      Это немного не так работает. Обычно выдаётся короткоживующий токен, очень часто JWT, где прописан срок протухания. Пока он жив, ты можешь обращаться к сервису. Срок его жизни может быть и пол часа и час. Когда токен протухает, в ход идёт рефреш токен, который можно хранить уже в Cookie, которые недоступны из JS, а значит его через JS уже не угнать, только лезть в кишки баузера, а потом также через кишки вставлять эту cookie в другой браузер. Так что угон этой cookie даст тебе доступ к сайту максимум на час, если, конечно, разработчики не идиоты и не выставили время жизни access токена на большой срок. Через час токен протухнет и старый браузер обновит его, а новый браузер обломается, поэтому что у него нет refresh токена.

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


      1. sansmaster Автор
        09.06.2026 20:29

        Глянул на jwt.io, как советовал. Но главное даже не там. Токен это один сегмент, без точек. У JWT их три через точку (header.payload.signature), так что это вообще не JWT, разбирать нечего. jwt.io это подтвердил: Decoded Header и Payload пустые.

        Раз структуры нет, то и читаемого exp в строке нет. Значит срок держит сервер, в самом токене его не видно.


        1. FSA
          09.06.2026 20:29

          Да. Токен вполне может быть и рандомной строкой. Сервер сам решает когда токен протух. Тогда интересно, сколько времени проживёт токен. Я бы не давал много времени токенам, что лежат в localStorage. Сам таким пользуюсь, время жизни - пол часа. Если просто украдут, то время на совершение действий не больше этого времени. Дальше надо снова токен добывать, т.е. нужно контролировать устройство всё время. Эта заметка навела меня на мысль переделать всё на httpOnly cookies. Раньше не знал как сделать, а сейчас нашёл.

          Если бы был jwt, из него можно было бы извлечь информацию, но тоже не всегда (иногда контент шиыруют, например, ЕСИА). А сервер может проверить валидность такого токена по закрытому ключу. Здесь не так.


          1. Gromilo
            09.06.2026 20:29

            Тут 2 стула: если токен, то могут увести с помощью xss, если кука, то можно влететь на межсайтовую подделку запросов.

            Я решил собрать грабли из двух миров: короткоживущий токен для доступа к апи, и долгоживущая http-only кука для выпуска токена.

            Плюс политики работы с контентом, чтобы снизить вероятность XSS (запрет inline-скриптов и т.д.) и другие полезные заголовки, которые можно проверить здесь: https://developer.mozilla.org/en-US/observatory/analyze?host=habr.com

            У меня, кстати 105 из 100


            1. sansmaster Автор
              09.06.2026 20:29

              Интересно


      1. entze
        09.06.2026 20:29

        Подождите, за 30 лет браузеров механизма надежного приколачивания сессии к конкретному устройству без возможности работы после переноса не сделали? Копирование кук, профилей, клонирование ОС целиком чтобы ломалось о HWID, но так чтобы этот HWID не был доступен владельцу сайта и не давал однозначно идентифицировать.

        Может я хочу что-то нереализуемое....


        1. inkelyad
          09.06.2026 20:29

          Подождите, за 30 лет браузеров механизма надежного приколачивания сессии к конкретному устройству без возможности работы после переноса не сделали?

          Условно сделали. mTLS с неизвлекаемым клиентским сертификатом в аппаратном кейсторе. Там вообще все может без всяких сессионых cookes работать - сразу из данных соединения извлекаем, кто тут к нам цепляется. Только кто же им пользуется-то?


        1. RTFM13
          09.06.2026 20:29

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

          При этом, всё софтовое можно эмулировать.


  1. sergeym69
    09.06.2026 20:29

    Похоже школьники писали авторизацию, надо было использовать OAuth2.0-PKCE или еще добавить клиентскую подпись, и ключ создавать с запретом экспорта их криптохранилища


    1. entze
      09.06.2026 20:29

      Это важное замечание. Т.е. если "а это у всех так и ничо" потому что не заморачиваются, то подсвечивать "школьниковость" важно и нужно. Иначе в соседнем треде "ачотакова жили без HTTPS и ничо".
      Есть рабочие полноценнные механизмы защиты? Надо внедрять. Есть проблемы с совместимостью защиты? Надо решать.


  1. PsihXMak
    09.06.2026 20:29

    Но работа под своей учёткой в Windows - уже считается Trusted. Если вы не можете доверять учётной записи под которой сидите, то как вообще вы собираетесь хранить ключи, пароли, хэши и тому подобное?


    1. zgwerby
      09.06.2026 20:29

      Местные на самом деле должны со слезами на глазах благодарить РКН: столько зонтичных инфоповодов дали для дешевого (зачастую и нейрослопового) хайпа: макс, впн, блокировки... Карму набить в таких условиях просто как переслать пакет по I2C


      1. sansmaster Автор
        09.06.2026 20:29

        Согласен , это стало так же легко как и набить лайки и карму если все это хейтить. ))


    1. Wesha
      09.06.2026 20:29

      как вообще вы собираетесь хранить ключи, пароли, хэши и тому подобное?

      Где-то там


  1. aik
    09.06.2026 20:29

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

    Плюс я свой макс не привязывал ни к каким госуслугам и т.п. Ибо нефиг.


    1. sansmaster Автор
      09.06.2026 20:29

      Хороший вопрос - я проверю на сколько легко .пока речь шла о том что достаточно 10 сек доступа физически к пк и токен ваш. (повторюсь так просто с др мессенджерами не работает) .


      1. aik
        09.06.2026 20:29

        За несколько секунд можно и профиль браузера утащить, а это точно сработает с другими мессенджерами (и не только с ними). Или трояна воткнуть.

        Так что тут всё же защита от удалённого доступа важнее. Если она есть, то это дырка вида "хакер с отвёрткой может выкрутить ваш жесткий диск". А вот если чужой сайт может в это хранилище залезть...

        Ещё вопрос - можно ли этот токен на другой комп утащить?


        1. sansmaster Автор
          09.06.2026 20:29

          конечно можно. можно даже в приложение вставить если его сделать . вот например я сделала для android стабильную версию (могу исходниками поделиться если интересно изучить).


          1. Medeyko
            09.06.2026 20:29

            я сделала

            а ниже в реплике:

            я и хотел

            В наши бурные времена такое разнообразие окончаний может вызывать настороженность, хе-хе.


            1. Wesha
              09.06.2026 20:29

              Вы не поверите, что в наше время с вами может сотворить autocomplete!


            1. sansmaster Автор
              09.06.2026 20:29

              )) хаха . не заметил даже .


      1. Gromilo
        09.06.2026 20:29

        За 10 секунд набить js скрипт и запомнить строку с ключом :)


      1. AlexCzech01
        09.06.2026 20:29

        С физическим доступом к компьютеру HTTP-only cookie точно так же копируется и потом используется для разных интересных запросов (которые например меняют пароль, способ аутентификации или ещё чего). Если токен короткоживущий, то с этого аспекта разницы никакой особенной нет


    1. vikarti
      09.06.2026 20:29

      Сторонний сайт - возможно нет. А что насчет расширений с правами на content injection на * ? есть такие, где это надо по вполне легитимным причинам но одна дыра (или, раз уж Макс это (как заявляют) типа официальный госмесенджер который (согласно рекламе) ловит в любых лифтах(в том числе видимо в лифтах бункера Ямантау)) то нужно было позаботится о защите потому что могут в ход пойти совсем интересные атаки на расширения (особенно учитывая что большинство авторов этих расширений - тоже не из России).


      1. aik
        09.06.2026 20:29

        Ну это тоже уровня троянов угрозы, то есть у злоумышленника есть доступ к браузеру/компьютеру.

        Я не говорю, что на эту дыру можно внимания не обращать. Просто интересны векторы атаки кроме как "запустил девтулс и вытащил токен".


      1. sansmaster Автор
        09.06.2026 20:29

        Да, похоже реально. Расширение с content-script на всех урлах видит localStorage страницы, значит __oneme_auth прочитает и сольёт, сразу у всех своих юзеров. Это серьёзнее стороннего сайта: сайт не достанет из-за cross-origin, а расширение достанет.

        Но похоже , к Telegram это применимо так же: он тоже держит ключи сессии в localStorage, то же расширение их прочитает. Разница только в том, что у MAX один bearer-токен, а у TG связка ключей, для скрипта без разницы. Устойчивее всех WhatsApp: ключи в IndexedDB non-extractable, сырой ключ скрипт не выгрузит.

        Вектор общий, но спрос именно к MAX выше: его продают как защищённый госмессенджер под цифровой ID. От такого ждёшь, что сессия не будет валяться в localStorage.


  1. vlad74
    09.06.2026 20:29

    Интересно, если открыть и закрыть вкладку в инкогнито - токен удалится?


    1. sansmaster Автор
      09.06.2026 20:29

      да.


    1. MAaxim91
      09.06.2026 20:29

      Если закрыть только вкладку, а не окно(есть хотя бы одна вкладка в окне инконгито), то localStorage не чистится.


  1. evgeniy_kudinov
    09.06.2026 20:29

    ИМХО, для данного мессенджера, на который смотрят миллионы глаз и большинство с критикой, надо было более тщательно продумывать процесс, а не хранить, как у обычных низкокритичных web-приложений, секретный токен в localStorage. Есть посложнее методики и протоколы auth для такого всё же.


    1. sansmaster Автор
      09.06.2026 20:29

      Именно на это я и хотел обратить внимание. есть другие методы хранение токена и его выдачи.


  1. clicky
    09.06.2026 20:29

    Смею разочаровать автора, он "раскрыл" то, что является базовым принципом: Whoever bears the token is treated as the authenticated user. Буквально на уровне утверждения о уязвимости замка двери типа "я сделал дубликат ключа, а он открывает дверь".

    Что же, ждём "взлом" остальных 95% процентов сайтов и API в интернете (этим же способом).


    1. sansmaster Автор
      09.06.2026 20:29

      Автор не ставил целью раскрыть некий секрет . Автор указал на простату с которой можно это сделать в мессенджере претендующий на цифровой паспорт. Повторюсь еще раз в том же whatsup так не получиться. одной строчкой токена как тут нет ни в одном мессенджере .


      1. tuxi
        09.06.2026 20:29

        Простата - это несколько иное, "но ход ваших мыслей мне нравится..." )))


        1. sansmaster Автор
          09.06.2026 20:29

          )).


  1. Shaman_RSHU
    09.06.2026 20:29

    Вроде бы всё в лучших практиках описано, но ведь у разработчиков другие приоритеты, правда ведь?

    Хранить токен в httpOnly Secure SameSite cookie вместо localStorage. Привязывать сессию к fingerprint браузера (User-Agent + IP + часовой пояс). Отслеживать смену геолокации/IP внутри одной сессии, при подозрении — сбрасывать токен. Использовать короткоживущий access-токен + отдельный refresh-токен с одноразовой ротацией. Показывать пользователю список активных сессий с возможностью принудительно завершать. Добавить Content Security Policy: script-src ‘self’ — усложнит выполнение стороннего кода. Требовать подтверждение через email/SMS/QR при входе с нового устройства. Инвалидировать токен при нажатии «Выйти» на серверной стороне, а не только на клиенте.


    1. vanxant
      09.06.2026 20:29

      если у атакующего есть доступ к консоли жертвы, всё вышеперечисленное поможет примерно никак. А вот геморроя легальным юзерам, например, с квн и/или мобильным интернетом, создаст выше крыши.


      1. FSA
        09.06.2026 20:29

        Игра в безопасность — она такая. Делаешь юзерам удобнее — становится уязвимым для большых вариантов атаки, делаешь безопасным — либо пользователи взвоют, либо просто мало кто будет пользоваться твоим продуктом.

        С моей точки зрения клиенты маха — такие же, как и у других клиентов других мессенджеров. Все могут допускать ошибки и ставить удобство в ущерб безопасности. Но нужно не забывать, что в случае с мах, дьявол кроется на серверной стороне.


    1. Freeman_RU
      09.06.2026 20:29

      >>Отслеживать смену геолокации/IP внутри одной сессии
      Это у кого такое реализовано прям интересно? То есть я вошёл в приложение в Минске, сел на самолет, прилетел в Москву и всё, бросаем сессию? Зачем?


      1. Shaman_RSHU
        09.06.2026 20:29

        Решение должно приниматься не в лоб, а на основе совокупности факторов. Из Минска в Москву за 15-20 минут не попасть (только через VPN). Да и тут речь только про веб-интерфейс.


        1. tuxi
          09.06.2026 20:29

          Москва Минск пример неудачный. А вот "моб.связь - вайфай - опять мобильная связь" просто типовой набор посетителя вебресурса, который иногда выходит из дома.


          1. Shaman_RSHU
            09.06.2026 20:29

            По совокупности факторов (оба операторы РФ, даже рагиона) триггер срабатывать не должен, но тут от реализации авторов зависит. В фрод системах что только не придумывают, а алгоритмы все равно не идельные.


            1. aik
              09.06.2026 20:29

              Мой рабочий интернет стабильно две трети сайтов (особенно государственные) определяют как Ульяновск. Потому даже ходя по территории завода, когда телефон переключается между вайфаем и мобильным интернетом, я перемещаюсь на сотни километров.


        1. ris58h
          09.06.2026 20:29

          У меня один друг в Нидерланды за секунды попадает.


          1. Shaman_RSHU
            09.06.2026 20:29

            Всё таки данное поделие навязывается в большей степени не ИТ-специалистам, поэтому так быстро они в Нидерланды попасть не смогут :) Они кстати доступ с иностранных IP к интерфейсу не заблокировали еще в борьбе с мошенниками или бояться маленькой аудитории?


        1. RTFM13
          09.06.2026 20:29

          Передвигаясь по москве можо телепортироваться куда угодно за секунды. Кроме того какой дурак скаму даст геолокацию, тем более в браузере?


          1. Shaman_RSHU
            09.06.2026 20:29

            Какой-нибудь IP но всё равно будет отдаваться. Многие просто соглашаются со всеми всплывающими окнами (о доступе к геолокации например), т.к. не понимают что это, а нужно быстро решить какую-то проблему в мессенджере.


  1. vanxant
    09.06.2026 20:29

    В заголовке не хватает слов ШОК и СЕНСАЦИЯ!!!

    А если серьёзно, то при наличии доступа к отладочным инструментам на доноре не спасут ни куки, ни смс коды, ни 2фа через totp. Всё спокойно переносится на другой комп стандартными средствами отладки. Единственная реальная защита это либо нормальный электронный ключ с неизвлекаемыми аппаратными ключами, либо скрэтч-карта с одноразовыми кодами. Но как правило гении её сразу полностью стирают и сканируют.

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


    1. ooko
      09.06.2026 20:29

      Для таких случаев делают обновление токена. Просто не всем нужно настолько заморачиваться


    1. sansmaster Автор
      09.06.2026 20:29

      Нет у менян был вариант "Скандалы интриги расследования , показать все что за кадром все что скрыто", но вспомнил , что это хабр и так минусов наставят полный вагон - не стал обострять .А если серьезно то суть то не сценарии когда чужой дядя за твоим ноутом, а расширение или XSS, которые читают localStorage у всех разом и удалённо. Вот тут HttpOnly как раз работает: куку скрипт не прочитает, а голую строку из localStorage прочитает запросто. Так что «нифига не спасёт» это только про случай, когда машину ты уже физически отдал.


      1. entze
        09.06.2026 20:29

        Даже с "физически отдал" - может все делать физически только на этом устройстве или легко воспроизвести потом на любом другом и пользоваться достаточное время, если доступ физически утерян?
        Аналогия - разблокированный смарт попал в руки. Можно что-то делать в незаблокированных приложениях, но так чтобы прямо забрать все и элементарно входить на любом устройстве (код-пароль, отпечаток, faceID, ввод пароля) - такого быть не должно.


      1. GraySparr0w
        09.06.2026 20:29

        Именно, напихать полезную нагрузку на расширение (например, сделать какой нибудь обход блокировки, народ подтянется) и забрать local storage. А если токен ещё и действует долго, вообще красота. Вроде как коды подтверждения половины платформ, связанных с Госуслугами, на макс приходят


      1. vanxant
        09.06.2026 20:29

        ну на самом деле это конечно баг браузера и его хоста расширений. А чё доступ сразу к паролям от всех сайтов не дают?

        Понимаю про плагины для разработчиков, но один раз спросить "расширение х хочет локалсторадж сайта у" вполне можно.


  1. MasterMentor
    09.06.2026 20:29

    И чо?


  1. domix32
    09.06.2026 20:29

    Честно угнанные куки работают много где. Тот же ВК кажется ровно тем же макаром работал всегда и одно время была огоромная проблема из-за того что фишинговые сайты сразу эту куку угоняли.


  1. Novelyx
    09.06.2026 20:29

    Ого, вот это метод, таким же способом не ломаются 99% сайтов


    1. sansmaster Автор
      09.06.2026 20:29

      99 % к счастью так не ломаются . Да и не взлом это вовсе просто механизм хранения токена . Для примера попробуйте с what's up тоже самое провернуть не получится .


  1. force
    09.06.2026 20:29

    Вам бы в статье больше упор сделать на вектор атаки (XSS, зловредные экстеншены), а не на то, как открыть консоль браузера. Тогда статья будет понятнее и полезнее.

    А то сейчас выглядит реально, как мегановость от школьника, который узнал про существование DevTools, а реальную проблему никто не видит.


    1. sansmaster Автор
      09.06.2026 20:29

      Я же не ради лайков пишу , мне важно узнать мнение сообщества .Но вы правы такие статьи нужно писать либо для другой категории людей либо действительно уже углубиться , в данном случае хотя бы затронуть XSS или расширение с правами на content injection .


  1. sektor305
    09.06.2026 20:29

    Познавательно и пугающе одновременно.

    По делу: проблема не в том, что токен можно украсть из localStorage. Проблема в том, что MAX (и многие другие сервисы) вообще хранят валидный токен в открытом виде в "локалсторедж".
    Правильный подход — httpOnly cookie с флагом Secure + SameSite=Strict. Тогда даже если вы скопируете весь localStorage — ничего не зайдёт.

    Что делать обычному пользователю: выходить из аккаунта на чужих компах кнопкой «Выйти», а не просто закрывать вкладку. И не оставлять браузер без присмотра.

    P.S. За дисклеймер про «делайте только со своим аккаунтом» — жирный плюс.
    Многие об этом забывают.


  1. sansmaster Автор
    09.06.2026 20:29

    Спасибо .Коротко и все по делу . Дискуссию можно закрывать.


  1. Ione1991
    09.06.2026 20:29

    если кто то получил доступ к вашему устройству, то разницы нет, какая система защиты у сервисов


  1. zheniaspyder
    09.06.2026 20:29

    Тихо тихо тихо, контору не палите)

    А то запретят и отвалится мой бот, который школьные чаты из Скама в ТГ перекидывает!