EMZETT.
Giriş yap

Race condition’lar ve TOCTOU: zamanlama zayıflığa dönüştüğünde

Kısaca: Sonuç paralel süreçlerin rastgele zamanlamasına bağlı olduğunda bir race condition oluşur; önce denetle sonra kullan (TOCTOU) durumunda durum arada değişebilir, örn. kuponlarda, havalelerde veya dosyalarda.

Biraz daha ayrıntılı: İki istek aynı veriyi aynı anda okuyup değiştirdiğinde sonuç yanlış olabilir. Bu bir eşzamanlılık hatasıdır ve kuralları baltalıyorsa (kupon iki kez kullanıldı, çift ödeme) aynı zamanda bir güvenlik açığıdır.

Ayrıntılı

Örnek: kupon kullanmak

İstek A: kuponu okur (kullanılmamış)     İstek B: kuponu okur (kullanılmamış)
İstek A: kullanıldı olarak işaretler     İstek B: kullanıldı olarak işaretler

İkisi de başarılı olur. Çözüm: atomik işlemler, veritabanı kilitleri ve işlemler.

Ayrıca bak: Veritabanı işlemleri ve ACID, Mutex, Deadlock, Hız sınırlama