JWT: разобрать и собрать

Токен разбирается в вашем браузере и никуда не отправляется - страница не делает запросов после загрузки. Это важно: JWT из чужого лога - это, по сути, чужой доступ. Собрать тестовый токен можно там же: подпись считает браузер, и секрет тоже остаётся у вас.

Чего эта утилита не делает

  • Не проверяет подпись. Для этого нужен секрет или открытый ключ, а отправлять секрет куда-либо - ровно то, чего здесь не происходит. Разбор отвечает на вопрос «что внутри», а не «настоящий ли».
  • Подписать можно только тем же ключом, что проверяет сервер. HS* - симметричные: кто может проверить, тот может и выпустить. Для RS*/ES* выпуск требует закрытого ключа, и его место - на сервере, а не во вкладке браузера.
  • Payload - это не тайна. Он закодирован base64url, а не зашифрован: любой, кто видел токен, читает его содержимое. Не кладите туда ничего, что нельзя показать.
  • alg: none - историческая дыра. Часть библиотек когда-то принимала токены без подписи как валидные; если вы видите такой алгоритм, проверяйте свою библиотеку.
  • Время в JWT - секунды, а не миллисекунды. Отсюда классическая ошибка «токен истёк в 1970 году».

Комментарии

Пока нет комментариев. Будь первым!

Оставить комментарий

Комментарий появится после проверки. Email не публикуется. Войти, чтобы не вводить имя каждый раз.