[WordPress] 手動解決帳號被機器人暴力破解的問題

本篇文章更新時間:2020/09/15
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~


預設 WordPress 的登入只需要帳號與密碼,而預設入口有兩個:

  1. wp-login.php
  2. xmlrpc.php

有安裝 WooCommerce 的話,還有第三個: /my-account/ 的預設頁面

暴力破解是指不論帳號或是密碼,都用機器人使用字典方式輪番嘗試排列組合,試圖用這種強硬方式猜到來破解。

參考: [WordPress] 暴力破解網站,拆解登入流程與模擬登入的方法

既然說是預設,也代表其他人也會知道怎麼連到你的後台,更有可能還猜到你的帳號是什麼,又這麼不小心(?)打對密碼,就登入了,一切都很巧合(?)

要避開這樣的巧合,簡單來說就是:都不要使用預設,讓人猜不著。

  1. 改變預設的登入位置,使用外掛 WPS Hide Login
  2. 不使用上一個世代的溝通方式,改檔案名稱或移除 xmlrpc.php
  3. 加強登入的驗證: [WordPress] 登入、留言、註冊防止機器人工具(支援 WooCommerceJetpack 2FA 登入

工具不是唯一,重點是方法,所以可以多找找相關的方法與其搭配的工具,選擇最適合自己的做法即可。

以上都是從「後端」的角度來作預防,那「前端」開發呢?

我一般還會先確認開發使用的主題是否有使用內建方法來呼叫使用者資訊,用在文章的中繼資料(meta) 中,像是:本文作者 OOO

這樣的前端功能也是有機會暴露出使用者帳號,讓駭客取得使用帳號,只要專注破解密碼就好,提高了網站的風險。

經整理,可以使用下列的程式碼片段避開帳號被猜到:

function mxp_the_author_posts_link($link) {
    return '小編';
}
add_filter('the_author_posts_link', 'mxp_the_author_posts_link', 11, 1);
add_filter('the_author', 'mxp_the_author_posts_link', 11, 1);

function mxp_author_link($link, $author_id, $author_nicename) {
    return home_url('/');
}
add_filter('author_link', 'mxp_author_link', 11, 3);

最後,本篇標題「手動」,就是從原理面來拆解、應對。覺得操作和理解困難的話,自然是直接找一套 WAF 像是 Wordfence 這類的防火牆外掛套一套能搞定(如果知道怎套的話XD)

其他像是伺服器針對登入嘗試捕捉錯誤回應並封鎖的可以參考: [Fail2ban] 針對 Nginx 伺服器架構下的 WordPress 資安攻擊防護


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[//////////____30%_________]

發佈留言

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