Что раскрывает JWT — и почему нельзя вставлять продакшн-токены где попало
JSON Web Token выглядит как случайный набор символов, но состоит ровно из трёх частей через точки: header, payload, signature. Понимание роли каждой — навык безопасности.
Подпись защищает от подделки — не от чтения
Header и payload — обычный Base64URL: любой держатель токена без усилий прочитает claims — id пользователя, email, роли, срок. Подпись доказывает лишь, что payload не менял никто без ключа.
Классическая ловушка: alg=none
Если сервер принимает токены с algorithm=none, подпись пропускается полностью — знаменитый класс багов захвата аккаунтов. Сервер должен фиксировать ожидаемый алгоритм.
Никогда не вставляйте продакшн-токены на чужие сайты
Сессионный токен — bearer-креденшл: кто держит, тот действует как вы до истечения. Вставить живой токен в неизвестный декодер — отдать сессию этому сайту. Для проверки используйте инструмент с локальным декодированием в браузере — как наш декодер JWT, который ничего не отправляет — и вообще лучше тестовые токены.
Короткий чек-лист
- Проверяйте exp до доверия
- Убеждайтесь, что алгоритм — тот, что ожидает сервер
- Любой токен читаем, никогда не секретен
Проверить токен безопасно: локальное декодирование — header и payload видны сразу, ничего не передаётся.