服務器頻發帶寬被佔滿、負載飆升,排查發現 PHP 腳本被植入惡意代碼,利用 file_get_contents()、fsockopen()、curl 等發起大量外部請求(DDOS 攻擊跳板、採集器、挖礦下載器等)。
; 1. 禁用高危函數(根據業務需求調整) disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source,symlink,link,dl,pcntl_exec,pcntl_fork,pcntl_signal,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv,apache_getenv,apache_note,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname,posix_times,posix_ctermid,posix_ttyname,posix_isatty,posix_access,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_initgroups,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname,posix_times,posix_ctermid,posix_ttyname,posix_isatty,posix_access,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_initgroups ; 2. 禁用 URL 封裝協議(防止 file_get_contents/fopen 讀取遠程資源) allow_url_fopen = Off allow_url_include = Off ; 3. 啟用 sockets 擴展(若業務需合法使用 socket 通信) ; extension=sockets ; 4. 限制腳本最大執行時間與記憶體 max_execution_time = 30 max_input_time = 60 memory_limit = 128M ; 5. 禁用錯誤顯示(生產環境) display_errors = Off log_errors = On error_log = /var/log/php/error.log
eval、base64_decode、gzinflate、preg_replace.*\/e 等特徵 ['timeout' => 3, 'method' => 'HEAD']]);
$headers = @get_headers($url, 1, $ctx);
if ($headers && stripos($headers[0], '502') !== false) {
@shell_exec($cmd);
error_log("[WATCHDOG] Detected 502, php-fpm reloaded at " . date('c'));
exit;
}
sleep(2);
}
「禁用危險函數 + 關閉 URL 封裝 + 最小權限原則」是 PHP 防禦帶寬滥用的基石。配合 WAF、系統防火牆、容器化與持續監控,可構建纵深防禦體系。記住:沒有銀彈,只有持續的加固與監控。