Безопасность JWT-токенов
Ошибки в работе с JWT (алгоритм none, отсутствие проверки подписи) позволяют подделать токен.
Сигнатура
JSON Web Token securityJWT — распространённый формат токенов аутентификации. Типичные ошибки: приём алгоритма none, отсутствие проверки подписи, длинный срок жизни без отзыва, хранение в токене чувствительных данных (полезная нагрузка лишь закодирована, а не зашифрована).
Как защититься: жёстко задавайте ожидаемый алгоритм при проверке, всегда проверяйте подпись и срок действия, держите короткий срок жизни с механизмом обновления, храните секрет надёжно.
import jwt
# Безопасно: явно указываем допустимый алгоритм
payload = jwt.decode(
token,
SECRET,
algorithms=["HS256"], # не доверяем алгоритму из заголовка токена
)