Race condition обычно продают как «техничную редкость». На практике это не редкость, а симптом плохой модели данных и слабой синхронизации.
Суть простая: два запроса приходят почти одновременно и оба считают, что имеют право менять одно и то же состояние. В результате сервер не выбирает «правильный» сценарий — он выбирает случайный.
Почему это важно бизнесу? Потому что последствия считаются не в строках кода, а в потерянных деньгах и доверии:
— двойное списание;
— обход лимитов;
— выдача доступа не тому пользователю;
— некорректные статусы заказов.
Уязвимость удобно искать не по названию, а по точкам конфликта:
1) операции с балансом и лимитами;
2) смена статусов и прав доступа;
3) любые действия, где есть проверка «можно / нельзя» перед записью.
Хорошая проверка — мысленно задать вопрос: что будет, если этот запрос выполнить дважды одновременно? Если ответ «не знаем», у вас уже не баг, а риск системы. ⚠️
Metric Sense
@MetricSensePro
Race condition обычно продают как «техничную редкость». На практике это не редкость, а симптом плохой модели д
Этот пост опубликован в Telegram-канале Metric Sense. Подписаться можно по ссылке: @MetricSensePro.