Битрикс Stack
Битрикс Stack
@BitrixStackPro

Race Condition я в проектах вижу чаще, чем хотелось бы: два запроса приходят почти одновременно, а сервер успе

Race Condition я в проектах вижу чаще, чем хотелось бы: два запроса приходят почти одновременно, а сервер успевает проверить состояние дважды, но изменить его — неатомарно.

В итоге появляются три типовых сценария:

1. Двойная операция
Например, заказ/оплата/списание обрабатываются параллельно, и одна бизнес-операция проходит дважды.

2. Обход ограничений
Проверка лимита или прав выполнена до изменения данных, а второй запрос успевает влезть между проверкой и записью.

3. Подмена состояния
Пока один запрос ещё «думает», другой уже меняет сущность — и логика начинает работать на устаревших данных.

Схема обычно одна и та же:
`проверка -> ожидание -> запись`
Если между этими шагами нет блокировки, транзакции или хотя бы корректной идемпотентности, уязвимость уже рядом.

Я бы смотрел в первую очередь на места, где есть финальные действия: начисления, списания, смена статусов, выдача бонусов, привязка промокодов. Именно там Race Condition превращается из теории в инцидент.
Этот пост опубликован в Telegram-канале Битрикс Stack. Подписаться можно по ссылке: @BitrixStackPro.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

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

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

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