JWT Decoder — разбор токена
Разбираем токен на части и объясняем каждое поле по-русски: даты вместо цифр, срок годности словами, проверка подписи ключом. Всё считается в браузере.
Полезная нагрузка токена не зашифрована — это обычный Base64. Её прочитает любой, у кого токен окажется в руках. Подпись защищает от подделки, но не от чтения.
Можно вставлять вместе со словом Bearer —
уберём сами. Токен считается прямо в браузере и на наш сервер не попадает.
Что стоит проверить
Проверка подписи
алгоритм: —Ключ никуда не отправляется: подпись считает встроенная криптография браузера. Без ключа разбор выше всё равно работает — подпись просто не проверяется.
Заголовок
| Поле | Значение | Что это |
|---|
Показать как JSON Свернуть JSON
Полезная нагрузка
| Поле | Значение | Что это |
|---|
Показать как JSON Свернуть JSON
Запрос обычно звучит как «расшифровать токен», и в этом слове скрыто опасное заблуждение. Расшифровывать нечего: полезная нагрузка JWT записана обычным Base64, и прочитать её может любой, у кого токен окажется в руках. Подпись защищает от подделки, но не от чтения.
Отсюда самая частая ошибка: в токен кладут телефон, почту, паспортные данные или даже другой токен, считая содержимое тайной. Мы ищем такие поля по названиям и предупреждаем: в токене место идентификаторам, а не самим данным.
Сокращения вроде iss, aud, nbf
и jti получают человеческие подписи, а числа времени —
обычную дату и срок словами: «истекает через 2 часа» или «истёк 5 дней
назад».
В разборе мы прямо называем то, что чаще всего оказывается дырой:
alg: none— токен не подписан вовсе, подделать его может кто угодно, а сервер, который такое принимает, пускает любого;- нет поля
exp— токен живёт вечно, и украденный однажды остаётся рабочим навсегда; - срок годности в месяцы у токена доступа: столько живут токены обновления, а не доступа;
- токен просрочен или ещё не вступил в силу.
Разбор показывает, что написано в токене, но не говорит, настоящий ли он.
Вставьте секрет для HS256 или публичный ключ для
RS256 и ES256, и мы посчитаем подпись встроенной
криптографией браузера. Ответ будет однозначным: подпись сошлась или нет.
Ключ никуда не отправляется, а без ключа разбор всё равно работает.
Про безопасность самого разбора
Токен — это действующий пропуск: у кого он есть, тот входит от вашего имени. Поэтому здесь ничего не отправляется на сервер, счёт идёт целиком в браузере. И общее правило, которое стоит помнить: если рабочий токен побывал в каком-то онлайн-сервисе, надёжнее считать его скомпрометированным и выпустить новый.
Оцените инструмент
Помогите нам стать лучше
Ваша оценка на Яндексе окажет нам поддержку!
Оставить оценку на ЯндексеРасскажите, чего не хватило.
Другие инструменты
JSON Formatter
Форматирование и починка JSON в браузере, с замечаниями о дублях и длинных числ…
Тестер регулярных выражений
Проверка regex с разбором по-русски и защитой от зависания
Конвертер CSV в JSON
Таблица в JSON с честными типами и обратной сверкой
Конвертер JSON в CSV
JSON в таблицу для Excel, со сверкой и защитой от формул
Форматирование SQL-запросов
Читаемый вид запроса, сверка с исходником и разбор опасных мест
XML форматирование онлайн
Читаемый XML, ошибки по-русски с подсказкой, сверка с исходником
XML-валидатор онлайн
Разметка, схема XSD и правила карты сайта, YML, RSS — с путём до ошибки
Экранирование строк
Девять режимов в обе стороны, ловит двойное экранирование