İçeriğe geç

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.

<?php
if ($_POST['token'] == $storedToken) { // tip juggling ile atlanabilir
grantAccess();
}
<?php
if (hash_equals($storedToken, $_POST['token'])) { // sabit zamanlı, tip-katı
grantAccess();
}

Güvenlik karşılaştırmalarında == yerine katı === veya gizli değerler için sabit zamanlı hash_equals() kullanın.