Срок действия токена
Задание 1Введение
Цель: Проверять временные поля токенов.
Напишите token_status(payload, now) по полям уже проверенного токена: нет exp → invalid; now >= exp → expired; есть nbf и now < nbf → not_yet; иначе ok.
Задание 2Теория и инструменты
exp — время истечения, nbf — время, раньше которого токен недействителен. Оба в секундах Unix.
Токен без срока действия опасен: украденный, он работает вечно.
Инструменты
- Python 3 или Node.js
- Встроенные тесты в редакторе
Больше теории — в разделе «Обучение: Защита (код)».
Задание 3Практика: напишите код
Примеры
token_status({"exp": 100}, 50)
→ "ok"token_status({"exp": 100}, 100)
→ "expired"Ещё 4 скрытых тестов.
Пошаговый план — открывайте по одному шагу
- 1Если нет exp — invalid.
- 2Если now ≥ exp — expired.
- 3Если nbf задан и now < nbf — not_yet, иначе ok.
Подсказки — каждая до решения стоит −25 очков
Задание 4Как защититься
Делайте токены короткоживущими, проверяйте подпись до полей и допускайте небольшой сдвиг часов.
Разборы участников
Разборы открываются после того, как вы решите комнату, — чтобы не спойлерить ответ.