Безопасность JWT-токенов

Ошибки в работе с JWT (алгоритм none, отсутствие проверки подписи) позволяют подделать токен.

СигнатураJSON Web Token security

JWT — распространённый формат токенов аутентификации. Типичные ошибки: приём алгоритма none, отсутствие проверки подписи, длинный срок жизни без отзыва, хранение в токене чувствительных данных (полезная нагрузка лишь закодирована, а не зашифрована).

Как защититься: жёстко задавайте ожидаемый алгоритм при проверке, всегда проверяйте подпись и срок действия, держите короткий срок жизни с механизмом обновления, храните секрет надёжно.

import jwt

# Безопасно: явно указываем допустимый алгоритм
payload = jwt.decode(
    token,
    SECRET,
    algorithms=["HS256"],  # не доверяем алгоритму из заголовка токена
)
← Все записи: Веб-уязвимости и защита
Поддержать проект