Этот вопрос проверяет понимание реальных рисков JWT и того, что сам по себе токен не решает все проблемы безопасности.
Основная проблема JWT — утечка токена: любой, у кого он есть, может использовать его до истечения срока. JWT сложно отозвать до exp, если не использовать дополнительные механизмы. При неправильной настройке можно получить уязвимости, связанные с алгоритмами подписи. Также есть риски XSS и неправильного хранения токена на клиенте.
JWT — это инструмент, который требует аккуратного использования и чёткого понимания его ограничений.
Уязвимости JWT — это риски, связанные с хранением, передачей и валидацией токенов, а не с самим форматом.
Токен можно украсть через XSS.
Любой, у кого есть токен, считается авторизованным.
Stateless-природа.
Без blacklist’ов токен живёт до exp.
Чем больше exp, тем выше риск.
Часто решают refresh-токенами.
Непроверенный алгоритм подписи.
Игнорирование exp, aud, iss.
LocalStorage уязвим к XSS.
Cookie требуют защиты от CSRF.
Короткий TTL access-токенов.
Refresh-токены с серверным хранением.
Проверка всех claims.
Использование HTTPS.
JWT безопасен только при правильной настройке: короткая жизнь токена, строгая валидация и защита от утечек обязательны.