Что делает декодирование JWT
Декодирование JWT читает части токена и показывает заголовок и полезную нагрузку в читаемом виде.
Обычно JWT состоит из трёх частей:
- заголовок;
- полезная нагрузка;
- подпись.
Для декодирования заголовка и полезной нагрузки не нужны секрет или закрытый ключ. Декодер просто преобразует закодированные данные в читаемый JSON.
Декодер JWT в Utilio предназначен для проверки содержимого токена. В локальном сценарии токен декодируется в браузере.
Что может раскрывать токен
Полезная нагрузка JWT может содержать чувствительную или идентифицирующую информацию.
В зависимости от системы там могут быть:
- идентификатор пользователя;
- адрес электронной почты;
- имя пользователя;
- роли;
- права доступа;
- идентификатор организации;
- идентификатор арендатора;
- области доступа;
- время выпуска;
- срок действия;
- внутренние поля приложения.
Даже истёкший токен может раскрывать информацию о пользователе или системе.
Декодирование — это не проверка
Декодирование JWT — это не то же самое, что проверка токена.
Декодирование показывает, что находится внутри токена. Проверка отвечает на другой вопрос: валидна ли подпись, можно ли доверять издателю, аудитории, сроку действия и другим полям токена.
Декодер не доказывает, что токен настоящий или безопасный. Если нужна проверка, используйте доверенный процесс проверки вашего приложения.
Почему рабочие токены рискованны
Рабочий токен может давать доступ к реальному аккаунту или системе. Вставлять его в публичную веб-страницу — лишний риск, даже если страница использует локальную обработку в браузере.
Остаются другие риски:
- расширения браузера;
- общие устройства;
- управляемые рабочие компьютеры;
- инструменты буфера обмена;
- запись экрана;
- вредоносные программы;
- случайное копирование в логи или тикеты.
Подробнее: расширения браузера, общие устройства и локальные ограничения безопасности.
Чеклист безопасной отладки
Перед декодированием JWT спросите себя:
- Это рабочий токен?
- Он всё ещё валиден?
- Он принадлежит реальному пользователю?
- Можно ли использовать тестовый токен?
- Можно ли удалить или заменить подпись или поля токена?
- Я использую доверенное устройство и профиль браузера?
- Не нужен ли внутренний инструмент?
Для реальных систем лучше использовать тестовые токены, примеры с удалёнными чувствительными данными или внутренние одобренные инструменты.
Смотрите также инструменты Utilio для разработчиков, как работает локальная обработка в браузере и Политику конфиденциальности.
Частые вопросы
Безопасно ли декодировать JWT онлайн?
Не вставляйте рабочие JWT в публичные инструменты. Используйте тестовый токен, токен с удалёнными чувствительными данными или доверенный локальный или внутренний декодер.
Может ли JWT содержать секреты?
Не должен, но может содержать чувствительную информацию: идентификаторы пользователей, роли, области доступа, адреса электронной почты и внутренние поля токена.
Декодирование проверяет токен?
Нет. Декодирование только показывает заголовок и полезную нагрузку. Проверка требует проверки подписи и полей токена через доверенную логику приложения.
Стоит ли вставлять рабочие токены?
Нет. Не вставляйте рабочие токены в публичные веб-страницы. Используйте тестовые данные или внутренние инструменты.
Что нужно удалить перед декодированием?
Удалите или замените рабочие токены, идентификаторы пользователей, адреса электронной почты, идентификаторы организаций, области доступа и любые поля токена, которые могут раскрыть реальный доступ или детали закрытой системы.

