有一些人會透過猜測管理員賬號的密碼來破解你的網站。他們往往利用一些軟體,不斷的嘗試用不同密碼登入,直到登入成功,這叫做暴力破解。

預設情況下 WordPress 允許一個賬號無限次進行登入,即使連續失敗 10000 次也可以繼續照常登入,這給暴力破解創造了條件,讓網站非常不安全。尤其是在多使用者的站點,因為不能保證每個使用者都能設定一個複雜的密碼。

我們可以透過一些方法來解決這個安全問題。比如很多網站會在登入失敗一次之後需要輸入驗證碼才能再次登入,但是破解者還可以利用一些軟體來快速識別驗證碼,所以這不是我想要的解決方案;本文要介紹的解決方案是仿照銀行,限制使用者登入失敗的次數,在登入失敗一定次數之後立即鎖定登入者的 IP 地址,在一定時間之內不能再次登入。

限制登入失敗的次數

如果要限制登入失敗的次數,可以使用 Login LockDown 外掛。在啟用外掛之後需要進入後臺的 「設定」→「Login LockDown」 來配置一下外掛。

外掛設定選項

由於外掛沒有中文版,所以我在這裡簡單介紹一下外掛的選項,大家可以參考一下。

Max Login Retries

連續登入失敗多少次之後鎖定登入者的 IP 地址。

Retry Time Period Restriction (minutes)

「連續」 的時間範圍 (分鐘) 。預設為 5 分鐘,也就是說在登入失敗後 5 分鐘內再次登入失敗計算為 「連續登入失敗」 。

Lockout Length (minutes)

鎖定 IP 地址的時間 (分鐘) 。

Lockout Invalid Usernames?

如果連續登入失敗者嘗試登入的是一個不存在的賬號,是否要鎖定他的 IP 地址。

Mask Login Errors?

是否隱藏登入失敗的原因。預設情況下,登入失敗會提示 「密碼錯誤」 或者 「使用者名稱不存在」,如果開啟此選項,則不會告訴登入的人為什麼登入失敗。

Show Credit Link?

在登入表單的下方顯示什麼文字。

預設情況下外掛會在登入表單下方新增一段帶有自己連結的文字:

本選項有三個可以選擇的專案,分別是:

  1. 按照預設方式顯示這段話
  2. 顯示這段話,但是連線標籤會加上 rel="nofollow" 屬性
  3. 不顯示這段話

「Show Credit Link?」 的 3 個選項

Update Settings

儲存選項。

Currently Locked Out

這裡會顯示被鎖定的 IP 列表,下方的按鈕可以用來釋放一些 IP 地址。