TechSEO Lab
TechSEO Lab
@TechSEOLabPro

Race Condition — это не «редкий баг», а ошибка синхронизации на уровне обработки запросов.

Race Condition — это не «редкий баг», а ошибка синхронизации на уровне обработки запросов.

Схема простая: два запроса попадают в один и тот же участок кода почти одновременно, а сервер не успевает корректно зафиксировать состояние. В итоге оба видят старое значение и оба проходят проверку. Дальше — классика: двойное списание, обход лимита, повторная выдача бонуса, захват чужого ресурса.

Три базовых типа:
1) time-of-check/time-of-use — проверили одно состояние, использовали уже другое;
2) конкуренция за ресурс — два запроса пишут в одну сущность без блокировки;
3) гонка на бизнес-логике — уязвимость появляется не в БД, а в последовательности действий.

Что важно: это не лечится «добавить задержку». Нужны атомарные операции, блокировки, idempotency key, транзакции, корректная сериализация критичных запросов.

Если в системе есть деньги, лимиты, роли или одноразовые действия — race condition надо проверять руками и нагрузкой. Иначе найдёте его не вы, а атакующий.
Этот пост опубликован в Telegram-канале TechSEO Lab. Подписаться можно по ссылке: @TechSEOLabPro.
start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @dumay. Быстрый тест: $20 за канал, $1000 за пакет по сети.