在管理網站時,許多管理者往往專注於內容更新與功能維護,卻忽略了網站安全的重要性。WordPress 等 CMS 平台的開放性,雖然讓擴充性變得強大,但同時也讓駭客有機可乘,透過各種方式上傳惡意 PHP 檔案,以達到後門控制、竊取資料甚至散播惡意程式的目的。
最常見的攻擊手法之一,就是在 /wp-content/uploads/
這類可寫入的目錄中藏入惡意 PHP 程式碼! 這些惡意程式通常會利用 base64_decode()
、eval()
、shell_exec()
等函式來執行不法指令。因此,我們必須定期檢查是否有可疑的 PHP 檔案存在,以確保網站的安全。
如何檢測可疑的 PHP 檔案?
你可以使用以下指令來掃描 uploads
目錄,尋找含有 base64_decode
的 PHP 檔案:
grep -Ril "base64_decode" /var/www/yoursite/wp-content/uploads/
這條指令的含義是:
grep
:搜尋檔案中的關鍵字-R
:遞迴搜尋子目錄-i
:忽略大小寫-l
:只顯示檔案名稱
這將列出所有包含 base64_decode
的檔案,因為該函式經常被用來解碼隱藏的惡意指令。
更進一步的安全檢查建議
除了 base64_decode
,你還可以搜尋其他可疑的 PHP 函式,例如:
grep -RilE "eval\(|shell_exec\(|system\(|exec\(|passthru\(|base64_decode\(" /var/www/yoursite/wp-content/uploads/
這條指令會一次搜尋多種常見的惡意函式,幫助你更全面地排查可疑檔案。
注意!找到的檔案不一定是病毒,不是找到就刪除,要刪任何檔案前也務必完整備份目錄,避免刪錯救不回來!
如果發現不明的 PHP 檔案,建議:
- 檢視檔案內容:有些檔案可能是插件或佈景主題的正常文件,但若發現加密程式碼或不熟悉的內容,應提高警覺。
- 檢查最近修改時間:使用
ls -lt
指令檢查哪些檔案最近被修改,可能是駭客留下的惡意檔案。 - 封鎖執行權限:如果
uploads
目錄下不應執行 PHP,可以透過.htaccess
限制該目錄內的 PHP 執行,例如:
<FilesMatch "\.php$"> Deny from all </FilesMatch>
或在 Nginx 中設定:
location /wp-content/uploads/ { location ~* \.php$ { deny all; } }
結論:定期檢查,防範未然!
網站安全是網站管理者不可忽視的重要工作。駭客的攻擊方式日新月異,但透過定期檢查可疑檔案、設置適當的權限,以及監控網站異常行為,就能大幅降低被入侵的風險。
建議每週執行一次檢查,確保 uploads
目錄不會成為駭客的後門,守護你的網站安全!