有一些人会通过猜测管理员账号的密码来破解你的网站。他们往往利用一些软件,不断的尝试用不同密码登录,直到登录成功,这叫做暴力破解。
默认情况下 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 地址。