有一些人會通過猜測管理員賬號的密碼來破解你的網站。他們往往利用一些軟件,不斷的嘗試用不同密碼登錄,直到登錄成功,這叫做暴力破解。
默認情況下 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?
在登錄表單的下方顯示什麼文字。
默認情況下插件會在登錄表單下方添加一段帶有自己鏈接的文字:

本選項有三個可以選擇的項目,分別是:
- 按照默認方式顯示這段話
- 顯示這段話,但是連接標籤會加上 rel="nofollow" 屬性
- 不顯示這段話

「Show Credit Link?」 的 3 個選項
Update Settings
保存選項。
Currently Locked Out
這裏會顯示被鎖定的 IP 列表,下方的按鈕可以用來釋放一些 IP 地址。