Race condition — это не «редкий баг для отчёта», а классическая ошибка синхронизации, из-за которой два запроса бьют по одному и тому же состоянию одновременно. Итог предсказуемо грязный: лимиты обходятся, деньги списываются дважды, проверки безопасности пролетают мимо, чужой аккаунт становится «внезапно вашим».
У этой уязвимости обычно три лица:
1) гонка на создание/изменение данных — когда один и тот же объект можно записать в неправильном порядке;
2) гонка на проверках — когда валидация прошла, а состояние уже успели поменять;
3) гонка на бизнес-операциях — когда бизнес-логика не выдерживает параллельных действий ⚠️
И да, искать это нужно не глазами, а нагрузкой: параллельные запросы, повторяющиеся действия, задержки между проверкой и выполнением, тесты на идемпотентность. Там, где система делает вид, что «всё под контролем», и рождаются самые дорогие ошибки.
Spike Attack
@SpikeAttackPro
Race condition — это не «редкий баг для отчёта», а классическая ошибка синхронизации, из-за которой два запрос
Этот пост опубликован в Telegram-канале Spike Attack. Подписаться можно по ссылке: @SpikeAttackPro.