İçeriğe geç

Dinamik Metot Çağrısı (ARCH7132)

Anahtar php.security.dynamic-method-dispatch · Önem warning · Kategori security · CWE CWE-470

Çağrılacak metot/fonksiyon adının kullanıcı girdisinden geldiği dinamik dispatch (değişken fonksiyonlar, call_user_func), saldırganın nesnedeki herhangi bir metodu tetiklemesine olanak tanır.

<?php
$action = $_GET['action'];
$controller->$action(); // herhangi bir public metot çağrılabilir
<?php
$allowed = ['index', 'show', 'list'];
$action = $_GET['action'] ?? '';
if (in_array($action, $allowed, true)) {
$controller->$action();
}

Dinamik çağrılan adı sabit bir izin listesine karşı doğrulayın; mümkünse açık bir switch/eşleme kullanın.