這份存取日誌揭露了更多細節,除了搜尋引擎爬蟲(如 Bingbot, ClaudeBot, AhrefsBot)的正常行為外,有幾點異常需要處理:
異常請求與機器人掃描
日誌中出現大量來自 binance.com 的 Referer(來源網址),正在存取你的 wp-includes 目錄下的 PHP 檔案,例如 class-wp-block-parser-frame.php。這明顯是針對 WordPress 核心檔案的惡意探測,雖然回傳 200,但如果你的檔案權限設定正確,通常不會有立即危險,不過這會增加伺服器負荷。
另外,還有一些看起來像是在搜尋特定關鍵字的請求(例如波斯文或阿拉伯文的搜尋字串),這可能是嘗試進行 SQL 注入或利用搜尋功能消耗你的 CPU 資源。
內部虛擬連線 (Internal Dummy Connection)
日誌中頻繁出現 OPTIONS * HTTP/1.0 來自 ::1(本機端)的請求。這是 Apache 用來喚醒閒置子行程的機制。如果你覺得這很佔日誌空間,可以在設定中過濾掉,但它本身不是安全威脅。
針對性的優化建議
一、 封鎖特定 Referer 攻擊
既然這些惡意探測都偽裝成從 binance.com 過來的請求,你可以直接在 .htaccess 阻擋這種來源:
Apache
RewriteEngine on
RewriteCond %{HTTP_REFERER} binance\.com [NC]
RewriteRule .* - [F]
二、 保護 wp-includes 目錄
除了 xmlrpc.php,wp-includes 目錄也不應該被外部直接執行 PHP 檔案。你可以將以下程式碼放入 wp-includes/ 目錄下的 .htaccess 檔案中(如果沒有就建立一個):
Apache
<Files *.php>
deny from all
</Files>
<Files wp-tinymce.php>
allow from all
</Files>
<Files ms-files.php>
allow from all
</Files>
這會封鎖該目錄下所有 PHP 的直接存取,但保留幾個 WordPress 運作必要的例外。
三、 處理搜尋功能濫用
如果你的網站不需要搜尋功能,或者被大量垃圾關鍵字搜尋,可以考慮安裝外掛限制搜尋頻率,或是透過 Cloudflare 的 WAF 規則,阻擋包含特殊字元或非預期語系的搜尋請求。
四、 設定連線超時 (Timeout)
在 Apache 設定中縮短連線等待時間,可以讓那些佔著連線不放的機器人趕快斷線,釋放 Workers:
將 Timeout 改為 30 甚至 15(秒),並確保 KeepAliveTimeout 設在 2 到 5 之間。
你目前的伺服器負載感覺已經緊繃,調整完這些設定後,建議觀察 top 或 htop 查看記憶體與 CPU 的即時變化。