封鎖特定 Referer 攻擊 既然這些惡意探測都偽裝成從 binance.com 過來的請求,你可以直接在 .htaccess 阻擋這種來源

這份存取日誌揭露了更多細節,除了搜尋引擎爬蟲(如 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 的即時變化。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *