Встречается на собеседованиях • сегодня

Каким образом Backend определяет поддельный JWT

Backend проверяет JWT на подлинность несколькими способами:

  1. Проверка сигнатуры - самая важная часть. Используется секретный ключ (для HMAC) или публичный ключ (для RSA/ECDSA) для верификации подписи токена. Если сигнатура не совпадает - токен поддельный.
python
import jwt
from jwt.exceptions import InvalidSignatureError

try:
decoded = jwt.decode(token, 'secret_key', algorithms=['HS256'])
except InvalidSignatureError:
print("Invalid token signature")

text

2. **Проверка стандартных claims**:
   - `exp` (expiration) - время жизни токена
   - `nbf` (not before) - токен нельзя использовать раньше
   - `iss` (issuer) - кто выпустил токен
   - `aud` (audience) - для кого предназначен

3. **Проверка формата токена** - должен состоять из 3 частей (header.payload.signature), разделенных точками, и быть правильно закодирован в base64.

4. **Проверка отозванных токенов** - через blacklist или проверку jti (JWT ID) в базе.

5. **Проверка алгоритма** - защита от атак, когда злоумышленник меняет алгоритм на 'none'.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы