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/
該外掛只影響網站前端的搜尋,它不會停用網站控制台部分中的搜尋。
也可以在 .htaccess 或 nginx.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 在防禦前已產生的紀錄,就只能等時間慢慢的減少了 (或者不會減少)。
發佈留言