JWT Decoder — разбор токена
Разбираем токен на части и объясняем каждое поле по-русски: даты вместо цифр, срок годности словами, проверка подписи ключом. Всё считается в браузере.
Полезная нагрузка токена не зашифрована — это обычный Base64. Её прочитает любой, у кого токен окажется в руках. Подпись защищает от подделки, но не от чтения.
Можно вставлять вместе со словом Bearer —
уберём сами. Токен считается прямо в браузере и на наш сервер не попадает.
Что стоит проверить
Проверка подписи
алгоритм: —Ключ никуда не отправляется: подпись считает встроенная криптография браузера. Без ключа разбор выше всё равно работает — подпись просто не проверяется.
Заголовок
| Поле | Значение | Что это |
|---|
Показать как JSON Свернуть JSON
Полезная нагрузка
| Поле | Значение | Что это |
|---|
Показать как JSON Свернуть JSON
Запрос обычно звучит как «расшифровать токен», и в этом слове скрыто опасное заблуждение. Расшифровывать нечего: полезная нагрузка JWT записана обычным Base64, и прочитать её может любой, у кого токен окажется в руках. Подпись защищает от подделки, но не от чтения.
Отсюда самая частая ошибка: в токен кладут телефон, почту, паспортные данные или даже другой токен, считая содержимое тайной. Мы ищем такие поля по названиям и предупреждаем: в токене место идентификаторам, а не самим данным.
Сокращения вроде iss, aud, nbf
и jti получают человеческие подписи, а числа времени —
обычную дату и срок словами: «истекает через 2 часа» или «истёк 5 дней
назад».
В разборе мы прямо называем то, что чаще всего оказывается дырой:
alg: none— токен не подписан вовсе, подделать его может кто угодно, а сервер, который такое принимает, пускает любого;- нет поля
exp— токен живёт вечно, и украденный однажды остаётся рабочим навсегда; - срок годности в месяцы у токена доступа: столько живут токены обновления, а не доступа;
- токен просрочен или ещё не вступил в силу.
Разбор показывает, что написано в токене, но не говорит, настоящий ли он.
Вставьте секрет для HS256 или публичный ключ для
RS256 и ES256, и мы посчитаем подпись встроенной
криптографией браузера. Ответ будет однозначным: подпись сошлась или нет.
Ключ никуда не отправляется, а без ключа разбор всё равно работает.
Про безопасность самого разбора
Токен — это действующий пропуск: у кого он есть, тот входит от вашего имени. Поэтому здесь ничего не отправляется на сервер, счёт идёт целиком в браузере. И общее правило, которое стоит помнить: если рабочий токен побывал в каком-то онлайн-сервисе, надёжнее считать его скомпрометированным и выпустить новый.
Другие инструменты
Просмотр исходного кода страницы
Исходный HTML страницы глазами робота Яндекса или Google
Визуальный HTML-редактор
Пишете как в текстовом редакторе — получаете готовый HTML
Код цвета HTML
Код цвета в HEX, RGB, HSL и HSB, с проверкой контраста
Эффект стекла в CSS
Стекло с проверкой читаемости надписи и запасным вариантом
Конвертер CSS в SCSS и обратно
CSS в SCSS со вложенностью и обратно, со сверкой результата
Конструктор сеток CSS Grid
Сетка под три экрана с готовым HTML и проверкой порядка блоков