İşletim sistemi komut enjeksiyonu (ARCH7102)
Anahtar php.security.os-command-injection · Önem error · Kategori security · CWE CWE-78
Komut dizesini kullanıcı girdisiyle kurup kabuğa geçirmek, saldırganların kabuk meta karakterleriyle ek komut zincirlemesine olanak tanır. Argümanları kaçışlamak veya kabuğu atlamak gerekir.
Hatalı
Bölüm başlığı “Hatalı”<?php$host = $_GET['host'];$output = shell_exec("ping -c 1 $host");echo $output;<?php$host = $_GET['host'];$cmd = 'ping -c 1 ' . escapeshellarg($host);$output = shell_exec($cmd);echo htmlspecialchars($output);Düzeltme
Bölüm başlığı “Düzeltme”Argümanları escapeshellarg() ile kaçışlayın veya doğrudan kabuğa girdi geçirmek yerine izin listesiyle doğrulayın.