awesome-everything EN
↑ Обратно к восхождению

Безопасность

JWT pitfalls: тест с выбором ответа

Суть Тест с выбором на синтез по всему юниту JWT-pitfalls — alg:none, путаница RS256→HS256, проверка claim, отзыв и компромиссы хранения токенов.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 13 min

Шесть вопросов поперёк всего юнита. Каждый отражает реальное решение о верификации — не определение для заучивания, а границу доверия, которую надо защитить против атакующего, контролирующего токен.

Цель

Убедись, что связываешь сбои JWT — доверие к алгоритму, привязку ключа, проверки claim, отзыв и хранение — в одно правило: никогда не позволяй токену описывать, как его проверять.

Викторина

Версия библиотеки принимает токен с заголовком alg:none и пустым сегментом signature, возвращая valid. Почему это катастрофа и какой фикс в одну строку?

Викторина

В атаке путаницы RS256→HS256 каким секретом атакующий подписывает поддельный токен и почему сервер его принимает?

Викторина

Сервис корректно пинит alg:RS256 и проверяет signature, но токен, выпущенный для другого микросервиса в том же домене доверия, принимается как свой. Какой проверки claim не хватает?

Викторина

Заголовок токена несёт kid, указывающий на https://attacker.example/jwks.json, и сервер берёт ключ по этому URL для проверки. В чём сбой и фикс?

Викторина

Пользователь сообщает, что его сессию угнали. С stateless JWT почему нельзя разлогинить его на стороне сервера и что ограничивает ущерб?

Викторина

SPA должна переживать перезагрузку страницы. Какое разделение хранения отгружает security-минд senior и почему?

Итог

Сквозная линия юнита — одно правило: никогда не доверяй токену описывать собственную верификацию. alg:none и путаница RS256→HS256 умирают, когда ты пинишь явный allowlist алгоритмов и привязываешь каждый ключ к одному алгоритму; контролируемые атакующим kid/jku умирают, когда ты резолвишь ключи только по закреплённому allowlist. Валидная signature необходима, но недостаточна — проверяй aud и iss, чтобы токен был привязан к ЭТОМУ сервису. А поскольку stateless-токен нельзя «отвыпустить», короткие TTL access, ротация refresh-токена с детектом повтора и XSS-осознанное хранение ограничивают то, что утечёт.

Продолжить восхождение ↑JWT pitfalls: свободное припоминание
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.