Race Condition — это не «сложный баг где-то в бекенде». Это ситуация, когда два запроса одновременно пытаются изменить одни и те же данные, а сервер не успевает их согласовать.
Почему это важно для бизнеса:
— можно списать деньги дважды;
— можно обойти лимит или проверку;
— можно получить доступ к чужим данным;
— можно создать баг, который выглядит как редкий сбой, а на деле открывает дыру в безопасности.
3 типа Race Condition, на которые стоит смотреть в первую очередь:
1. **TOCTOU** — «проверил, а потом использовал»
Между проверкой и действием состояние успевает измениться.
2. **Double spending / double action**
Один и тот же запрос выполняется дважды, хотя должен был сработать один раз.
3. **State inconsistency**
Два параллельных действия оставляют систему в противоречивом состоянии.
Как находить такие проблемы:
— искать операции без блокировок и идемпотентности;
— проверять параллельные сценарии вручную;
— тестировать не только «что делает запрос», но и «что будет, если он придёт дважды» 🔍
Для коммс-команды здесь важен простой вывод: не путайте «редкий баг» с «низким риском». В уязвимостях редкость часто означает только одно — их ещё не научились стабильно воспроизводить.
Voice & Proof
@VoiceProofPro
Race Condition — это не «сложный баг где-то в бекенде». Это ситуация, когда два запроса одновременно пытаются
Этот пост опубликован в Telegram-канале Voice & Proof. Подписаться можно по ссылке: @VoiceProofPro.