明凯博客

关注网站技术,一个特立独行的程序员

Limit Login Attempts 添加IP白名单

最近wordpress暴力破解猖獗,大家用的最多的就是Limit Login Attempts 这款插件了,这个插件功能强大,能够限制错误登陆次数,封锁暴力破解的ip,并且识别连接方式。

好了,这篇文章不是介绍Limit Login Attempts这个插件的,而是说说如何添加为Limit Login Attempts 添加白名单的,即 whitelist

有人会问为什么要添加?

我想说,Limit Login Attempts 有这功能,我就要试试,我乐意折腾。好吧,其实是火狐上的lastpass这个插件导致我都没选择填写密码,Limit Login Attempts 都会说我尝试错误登陆,把我ip给封了,严重的时候,它封了 我手头4个vpn的ip,你让我怎么办?

解决办法:
只能自己登陆ssh或者ftp,然后进入”wp-content/plugins/limit-login-attempts/”这个目录,找到文件名为“limit-login-attempts.php”,然后给这个文件重命名,我这里改为“limit-login-attempts-no.php” ,这样就会关闭Limit Login Attempts 这个插件,你就能正常登陆了。

Limit Login Attempts add whitelist (Limit Login Attempts 添加 白名单,防止误操作,封锁了自己的ip)

解决办法:

用文本编辑器打开limit-login-attempts-no.php,找到以下代码段:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
 * Check if IP is whitelisted.
 *
 * This function allow external ip whitelisting using a filter. Note that it can
 * be called multiple times during the login process.
 *
 * Note that retries and statistics are still counted and notifications
 * done as usual for whitelisted ips , but no lockout is done.
 *
 *Example:
 *function my_ip_whitelist($allow, $ip) {
 * return ($ip == 'my_ip') ? true : $allow;
 *}
 */add_filter('limit_login_whitelist_ip', 'my_ip_whitelist', 10, 2);
 
function is_limit_login_ip_whitelisted($ip = null) {
    if (is_null($ip)) {
        $ip = limit_login_get_address();
    }
    $whitelisted = apply_filters('limit_login_whitelist_ip', false, $ip);
    return ($whitelisted === true);
}

将上面的Example:以下的”*”去掉,也就是取消注释不包括example这行。还有就是将example前面的“*”修改成“*/”,这样才算封闭了前面那段作者给这段代码的注释。当然,你也可以完全删除包含example所在行以上的注释。关键:将里面的my_ip改成你想要设置的白名单的ip,我这里随便写个ip,写为 192.168.44.66 。以下是我修改后的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*
 * Check if IP is whitelisted.
 *
 * This function allow external ip whitelisting using a filter. Note that it can
 * be called multiple times during the login process.
 *
 * Note that retries and statistics are still counted and notifications
 * done as usual for whitelisted ips , but no lockout is done.
 *
  */Example:
  function my_ip_whitelist($allow, $ip) {
    return ($ip == '192.168.44.66') ? true : $allow;
  }
  add_filter('limit_login_whitelist_ip', 'my_ip_whitelist', 10, 2);

, , ,

相关文章

4 条评论 “Limit Login Attempts 添加IP白名单

  • fung说道:

    改为“limit-login-attempts-no.php” ,这样就会关闭Limit Login Attempts 这个插件,你就能正常登陆了。用文本编辑器打开limit-login-attempts-no.php。好奇,插件都已经失效了,还要白名单干嘛?我也在用这个插件,但是老被别人暴力破解,把我自己都挡在外面了。不知道如何处理。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注