شرط مسابقه(N/A)
آسیبپذیری که زمانی رخ میدهد چندین فرآیند همزمان به یک منبع دسترسی پیدا کنند و نتیجه به ترتیب اجرا بستگی داشته باشد.
شرط مسابقه چیه؟
خلاصه در یه جمله: وقتی دو تا کار همزمان بخوان یه چیز رو تغییر بدن و نتیجه بستگی داشته باشه کی زودتر تموم بشه!
فرض کن حسابت ۱۰۰ تومنه. دو تا درخواست همزمان میاد برای برداشت ۱۰۰ تومن. اگه سیستم چک نکنه، هر دو درخواست موفق میشن و تو ۲۰۰ تومن برداشت میکنی در حالی که فقط ۱۰۰ تومن داشتی! این یعنی Race Condition.
چطور کار میکنه؟
۱. درخواست ۱: موجودی رو میخونه (۱۰۰ تومن) ۲. درخواست ۲: موجودی رو میخونه (۱۰۰ تومن) ۳. درخواست ۱: ۱۰۰ تومن برمیداره، موجودی میشه ۰ ۴. درخواست ۲: ۱۰۰ تومن برمیداره، موجودی میشه -۱۰۰!
چون چک نکردن بین مرحله ۲ و ۳.
چرا برای امنیت مهمه؟
چون Race Condition میتونه منجر به برداشت اضافی، دور زدن محدودیتها، یا دسترسی غیرمجاز بشه. پیدا کردنش سخته، تست کردنش سخته.