ddos wordpress search

如何阻擋 WordPress 搜尋攻擊

Written by

Feature Photo by Unsplash+

DDoS 對 WordPress 攻擊中,利用 「/?s=」查詢字串來癱瘓你的 WordPress 網站,而這種搜尋攻擊模式,也被國、內外黑帽 SEO 廣泛濫用。

什麼是 DDoS ?

DDoS 代表分散式阻斷服務,攻擊目的在阻止合法使用者訪問網站。

為了使 DDoS 攻擊成功,攻擊者需要發送比受害伺服器能夠處理的更多的請求,使其受害伺服器負載過高而當機。

其中以利用 「/?s=」查詢字串的攻擊,最為快速有效的癱瘓 WordPress 伺服器。

152.65.171.11 - - [11/Mar/2022:14:36:08 -0400] "GET /?s=11973 HTTP/2.0" 200 8950 "-" "Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.12154 Safari/537.40"
32.55.10.14 - - [11/Mar/2022:14:36:08 -0400] "GET /?s=12974 HTTP/2.0" 200 8955 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.2; WOW64; Trident/6.0)"
159.65.156.160 - - [11/Mar/2022:14:36:08 -0400] "GET /?s=13055 HTTP/2.0" 200 8955 "-" "Mozilla/5.0 (Windows NT 9.0; Win64; x64) AppleWebKit/141.36 (KHTML, like Gecko) Chrome/36 Safari/537.36"
47.55.13.13 - - [11/Mar/2022:14:36:08 -0400] "GET /?s=20625 HTTP/2.0" 200 8940 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/375.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.37"

如何防禦 WordPress 搜尋攻擊

1. 禁用 WP 搜尋功能

如果你的網站不需要搜尋功能,請禁用 WordPress 搜尋功能來關閉網站的大門,可以安裝 WordPress 外掛程式禁用搜尋。

Disable Search 外掛:

https://wordpress.org/plugins/disable-search/

該外掛只影響網站前端的搜尋,它不會停用網站控制台部分中的搜尋。

也可以在 .htaccessnginx.conf 檔案上使用安全規則來阻止「/?s=」處的訪問,例如:

# BEGIN Block WordPress Search

RewriteEngine On
RewriteCond %{QUERY_STRING} ^s=([^&]+)$ [NC]
RewriteCond %{REQUEST_URI} !^/wp-admin
RewriteRule ^(.*)$ - [F,L]

# END Block WordPress Search

nginx.conf 規則

if ( $query_string ~ "^/?s=" ) {
return 403;
}

location /wp-admin/ {
try_files $uri $uri/ /index.php?$args;
}

2. 更改 WordPress 中的「/?s=」查詢字串

更改「/?s=」查詢字串來欺騙攻擊者,例如這篇 WPBeginner 文章中方法。

How to Change the Default Search URL Slug in WordPress

3. 更換 WordPress 搜尋方式

透過安裝外掛的方式,替換原有 WordPress 搜尋引擎。

Search with Google 外掛:

https://tw.wordpress.org/plugins/search-with-google/

結論

如果你的網站不需要搜尋功能,就禁用 WordPress 搜尋功能。

利用 WordPress 搜尋功能作惡意的攻擊,對伺服器的負載傷害很大;如果被黑帽 SEO 濫用,造成 Google 搜尋列表收錄一些不相關內容連結,對網站造成負面的影響。


2024/08/31 補充:

不管是黑帽的濫用還是搜尋攻擊方式,你的網站遇到了,都是麻煩事。

我和 kinsta 工程師討論很久,說明為何要用 403 來阻擋:

403 是最直接有效的方法阻擋,即使用搜尋攻擊 (DDoS),可以大幅度減輕伺服器壓力。

有的人,會用導向首頁或 404 方法,沒有什麼不好,但是,這會再經過 PHP 處理再回覆,這會大量消耗 CPU 效能,你的伺服器撐得住就可以。

再說,Kinsta 是用 Visits 來計算流量,403 是不計算入 Visits,反之,導入首頁 (200) 或 404 都要計算入 Visits,如果是搜尋攻擊的話,流量是很可觀的。

Google Search Console 在防禦前已產生的紀錄,就只能等時間慢慢的減少了 (或者不會減少)。

發佈留言

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

Your Mastodon Instance