İçeriğe geç

Dinamik Kod Çalıştırma (ARCH7131)

Anahtar php.security.dynamic-code-execution · Önem critical · Kategori security · CWE CWE-95

eval() ile bir string’i çalışma zamanında kod olarak çalıştırmak, en geniş uzaktan kod çalıştırma (RCE) ilkesidir. Girdi güvenilmeyen kaynaktan geliyorsa saldırgan keyfi PHP çalıştırabilir.

<?php
$op = $_GET['op']; // örn. "1+1" ya da kötü amaçlı kod
eval("\$result = $op;");
echo $result;
<?php
$allowed = ['add' => fn($a, $b) => $a + $b, 'mul' => fn($a, $b) => $a * $b];
$op = $_GET['op'] ?? '';
$result = isset($allowed[$op]) ? $allowed[$op]((int)$_GET['a'], (int)$_GET['b']) : null;

eval kullanmaktan kaçının; izin listeli işlemler, ayrıştırıcılar veya açık eşleme tabloları ile değiştirin.