Введение в безопасность JWT: декодирование, проверка и распространенные ошибки

Руководство JWT для разработчиков и Xiaobai: структура, локальное декодирование, проверка истечения срока действия и почему « способность декодировать » не означает « доверенность».

· Все гиды

Что такое JWT?

JSON Web Token (JWT) - это компактный формат строк, часто используемый для передачи заявлений между режимом входа в систему, авторизацией API и микросервисами. Типичный JWT состоит из трех фрагментов Base64URL: Header (алгоритмы и типы), Payload (заявления, такие как идентификатор пользователя и время истечения срока действия exp) и Signature (подписи, используемые для проверки того, что они не были изменены).

В Towalles jwt - decoder вы можете вставить Token локально в браузер и сразу же просмотреть содержимое JSON от Header и Payload. Мы не загружаем Token на сервер - это очень полезно для отладки среды разработки, проверки времени истечения срока действия и проверки « Почему 401».

Проверка декодирования

Любой может расшифровать JWT Header и Payload в Base64, поэтому в Payload не должны храниться секретные секреты, такие как пароль или полный номер кредитной карты. Раздел подписи существует для того, чтобы сервер использовал ключ или открытый ключ для проверки того, был ли токен выдан доверенной стороной без изменений.

Распространенное недоразумение: « Я декодировал JWT на переднем конце и увидел role: admin, поэтому пользователь - администратор. Это неправильно - злоумышленник может подделать Payload и перекодировать его (если только ваше приложение не расшифровывает его неправильно). Правильный подход: полная проверка подписей, exp, aud, iss и других заявлений с помощью ключа / открытого ключа на сервере.

Разработка отладочных предложений

Проверьте, истек ли срок действия exp; Обратите внимание на отклонение часов. Убедитесь, что alg является ожидаемым алгоритмом (избегайте атаки alg: none или алгоритма деэскалации). Проверьте, соответствует ли ISS / AUD вашим услугам. При использовании HS256 ключ сохраняется только на сервере; jwt - generator подходит только для локальной настройки и не раскрывает ключи на переднем крае производства.

Используйте hash - generator, hmac - generator, чтобы понять разницу между подписью и HMAC: подпись JWT - это структурированный протокол, а HMAC - это универсальная аутентификация сообщений. Для проверки API Webhook можно использовать hmac - generator.

Конфиденциальность и соблюдение

Даже если инструмент обрабатывается локально, не допускайте утечки производственных токенов на экран записи, журнал или рабочий лист. Ключи Rotate, сокращение срока службы токена Access, использование refresh token или step - up для чувствительных операций. Инструментальная страница Towalles содержит учебные пособия и FAQ, которые помогают командам унифицировать исходные данные безопасности.

Соответствующие инструменты