← Все комнаты Путь «Защита (код)» →
СреднийЗащита (код) Код Осенний CTF

Срок действия токена

Прогресс комнаты 0 / 4
Задание 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Практика: напишите код

Примеры

Пример 1
token_status({"exp": 100}, 50)
→ "ok"
Пример 2
token_status({"exp": 100}, 100)
→ "expired"

Ещё 4 скрытых тестов.

solution
Ctrl+Enter — отправить Войдите, чтобы отправить

Пошаговый план — открывайте по одному шагу

  1. 1
    Если нет exp — invalid.

Подсказки — каждая до решения стоит −25 очков

Задание 4Как защититься

Делайте токены короткоживущими, проверяйте подпись до полей и допускайте небольшой сдвиг часов.

Разборы участников

Разборы открываются после того, как вы решите комнату, — чтобы не спойлерить ответ.