diff --git a/app/Console/Commands/DDoSDetectionCommand.php b/app/Console/Commands/DDoSDetectionCommand.php index 6ec6779..58d0f93 100755 --- a/app/Console/Commands/DDoSDetectionCommand.php +++ b/app/Console/Commands/DDoSDetectionCommand.php @@ -8,6 +8,7 @@ use App\Services\AlertService; use Illuminate\Console\Command; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Log; +use Illuminate\Support\Facades\Process; class DDoSDetectionCommand extends Command { @@ -166,8 +167,7 @@ class DDoSDetectionCommand extends Command } try { - $escapedIp = escapeshellarg($ip); - exec("iptables -A INPUT -s {$escapedIp} -j DROP 2>/dev/null"); + Process::run(['iptables', '-A', 'INPUT', '-s', $ip, '-j', 'DROP']); Log::warning("IP blocked due to DDoS detection: {$ip}"); $this->warn("IP {$ip} geblokkeerd via iptables."); } catch (\Exception $e) { @@ -209,7 +209,6 @@ class DDoSDetectionCommand extends Command $blocked = array_filter($blocked, fn ($blockedIp) => $blockedIp !== $ip); Cache::put(self::CACHE_KEY_BLOCKED_IPS, array_values($blocked), 3600); - $escapedIp = escapeshellarg($ip); - exec("iptables -D INPUT -s {$escapedIp} -j DROP 2>/dev/null"); + Process::run(['iptables', '-D', 'INPUT', '-s', $ip, '-j', 'DROP']); } } diff --git a/app/Filament/Pages/Monitoring/AlertSettings.php b/app/Filament/Pages/Monitoring/AlertSettings.php index eef3816..2448c96 100755 --- a/app/Filament/Pages/Monitoring/AlertSettings.php +++ b/app/Filament/Pages/Monitoring/AlertSettings.php @@ -1406,9 +1406,9 @@ final class AlertSettings extends Page implements HasForms { try { $load = sys_getloadavg(); - $cpuCount = (int) shell_exec('nproc 2>/dev/null') ?: 1; - $memoryUsage = shell_exec("free -m | awk '/Mem:/ {printf \"%d%% (%dMB / %dMB)\", $3/$2*100, $3, $2}'"); - $diskUsage = shell_exec("df -h / | awk 'NR==2 {print $5 \" used\"}'"); + $cpuCount = (int) Process::run('nproc 2>/dev/null')->output() ?: 1; + $memoryUsage = Process::run("free -m | awk '/Mem:/ {printf \"%d%% (%dMB / %dMB)\", $3/$2*100, $3, $2}'")->output(); + $diskUsage = Process::run("df -h / | awk 'NR==2 {print $5 \" used\"}'")->output(); $html = '