Gevşek Tip Karşılaştırması (ARCH7138)
Anahtar php.security.loose-type-comparison · Önem warning · Kategori security · CWE CWE-697
PHP’de gevşek eşitlik (==) tip dönüştürür; "0e123" == "0e456" gibi durumlar true döner. Token veya hash karşılaştırmasında bu tip oyunu kimlik doğrulamanın atlanmasına yol açar.
Hatalı
Bölüm başlığı “Hatalı”<?phpif ($_POST['token'] == $storedToken) { // tip juggling ile atlanabilir grantAccess();}<?phpif (hash_equals($storedToken, $_POST['token'])) { // sabit zamanlı, tip-katı grantAccess();}Düzeltme
Bölüm başlığı “Düzeltme”Güvenlik karşılaştırmalarında == yerine katı === veya gizli değerler için sabit zamanlı hash_equals() kullanın.