tomai
Войти

Что раскрывает JWT — и почему нельзя вставлять продакшн-токены где попало

JSON Web Token выглядит как случайный набор символов, но состоит ровно из трёх частей через точки: header, payload, signature. Понимание роли каждой — навык безопасности.

Подпись защищает от подделки — не от чтения

Header и payload — обычный Base64URL: любой держатель токена без усилий прочитает claims — id пользователя, email, роли, срок. Подпись доказывает лишь, что payload не менял никто без ключа.

Классическая ловушка: alg=none

Если сервер принимает токены с algorithm=none, подпись пропускается полностью — знаменитый класс багов захвата аккаунтов. Сервер должен фиксировать ожидаемый алгоритм.

Никогда не вставляйте продакшн-токены на чужие сайты

Сессионный токен — bearer-креденшл: кто держит, тот действует как вы до истечения. Вставить живой токен в неизвестный декодер — отдать сессию этому сайту. Для проверки используйте инструмент с локальным декодированием в браузере — как наш декодер JWT, который ничего не отправляет — и вообще лучше тестовые токены.

Короткий чек-лист

  • Проверяйте exp до доверия
  • Убеждайтесь, что алгоритм — тот, что ожидает сервер
  • Любой токен читаем, никогда не секретен

Проверить токен безопасно: локальное декодирование — header и payload видны сразу, ничего не передаётся.