本篇記錄我的網站疑似遭受 DDOS 的騷擾,將 WordPress 的內建搜尋功能關閉,改用 Google 自訂搜尋引擎的過程紀錄。

最近發現 G. T. Wang 網站的伺服器有時候突然會有的異常增加的 CPU 使用率與硬碟 IO,在系統上查了老半天,看不出有什麼異狀,後來觀察 PHP-FPM 服務狀態,發現是有人刻意使用惡意程式,瞬間同時送出多個 WordPress 搜尋的請求,造系統負載驟增的現象。

PHP-FPM 服務狀態

接著為了釐清到底是怎麼回事,我從 Nginx 網頁伺服器的紀錄檔案中篩出所有 WordPress 搜尋的請求紀錄,發現這些同時送出的請求都是來自於兩個很接近的 Class C 網域,所很明顯就是人為發動的 DDOS 攻擊:

# 查閱 Nginx 紀錄檔
zcat access.log-20181117.gz | grep 'GET /?s=' | cut -c 1-120

查閱 Nginx 服務記錄檔

這個疑似 DDOS 攻擊的流量很小,幾乎不影響我的系統服務,只是從監控報表上非常顯眼,放著不處理的話感覺又不放心,所以決定直接把 WordPress 內建的搜尋功能關閉,改用 Google CSE 自訂搜尋引擎來提供搜尋功能。

關閉 WordPress 搜尋功能

WordPress 本身就有內建搜尋功能,如果想要將搜尋功能關閉,不讓訪客使用的話,建議可以安裝 Disable Search 外掛,安裝這個外掛工具之後,就可以完全關閉網站的搜尋功能,避免被 DDOS 的風險。

Google 自訂搜尋引擎

關閉 WordPress 的搜尋功能之後,如果還是想要讓訪客可以尋找網站中的資料,可以改用 Google 所提供的自訂搜尋引擎服務。

Step 1
Google 自訂搜尋引擎的網頁上註冊,點選「Add」新增一個搜尋引擎。

新增搜尋引擎

Step 2
自訂適用於自己網站的搜尋引擎,填寫要搜尋的網站(通常就是自己的網站)、語言,然後自訂這個搜尋引擎的名稱。

自訂搜尋引擎

Step 3
點選「取得程式碼」。

取得程式碼

Step 4
將 Google 自訂搜尋引擎的程式碼複製下來。

複製程式碼

Step 5
在 WordPress 「外觀」的「小工具」設定頁面中,新增一個「自訂 HTML」小工具,然後把 Google 自訂搜尋引擎的程式碼貼上去,這樣就完成 Google 自訂搜尋引擎的設定了。

「自訂 HTML」小工具

改用 Google 自訂搜尋引擎之後,網頁的版面通常影響不大,看起來就是標準的搜尋框。

Google 自訂搜尋引擎

Google 自訂搜尋再輸入關鍵字的時候,還會自動給出建議的字詞,這個功能是普通 WordPress 搜尋功能所沒有的。

建議關鍵字

這是搜尋結果的呈現頁面,在 Google 自訂搜尋引擎的設定頁面中,使用者也可以自由更改結果的呈現版面配置,以及文字與顏色等樣式,讓搜尋引擎的版面可以符合原來網站的風格。

搜尋結果

改用 Google 自訂搜尋引擎最大的好處就是可以完全避免掉 WordPress 搜尋功能給系統帶來的風險,減輕自己系統的負載,另外如果網站有使用 Google 的 AdSense 廣告在獲取收益的話,在 Google 自訂搜尋引擎頁面中的廣告,也可以算在自己的收益之內,所以改用 Google 自訂搜尋引擎我感覺確實是不錯的做法。