WordPress限制ip登陆次数,最近有很多机器人攻击我的后台,无限尝试我后台登录密码,如果我密码不够安全话那就遭殃了,因为我添加了WordPress登陆失败邮件提醒功能,谁在后台做了什么事我基本都知道的,为了防止这个无限尝试我后台登录密码,我采用了一个限制IP登录次数功能,它的原理很简单是采用当前ip限制登录,有效的防止登录错误密码次数,如果超过尝试3次密码错误时候,它会记录下你这登录ip地址,第4次登录时它会限制你继续访问后台登录,而且会显示空白地址让你无法在继续尝试,老规矩只需要添加一串代码就搞定,不用安装任何插件实现此功能!
登录次数演示图:
3次过后直接空白地址:
把以下全部代码丢进模板函数 (functions.php)!
/*-----------------------------------------------------------------------------------*/ /* wordpress限制ip登陆次数 /*-----------------------------------------------------------------------------------*/ # 阻止登录的函数,直接 404 function block_login() {header("HTTP/1.1 404 Not Found");header("Status: 404 Not Found");exit;} # 登录前判断登陆的失败次数 add_action("login_head",function () { $login_ip = $_SERVER['REMOTE_ADDR']; $login_ip_list = unserialize(get_option("LOGIN_IP_LIST")); # 登录失败超过2次就进行阻止登陆 if($login_ip_list && ($login_ip_list[$login_ip] > 2)) {block_login();}}); # 登录失败的处理 add_action('login_errors', function ($info) { $login_ip = $_SERVER['REMOTE_ADDR']; $login_ip_list = get_option("LOGIN_IP_LIST"); if($login_ip_list) {$login_ip_list = unserialize($login_ip_list);} else {$login_ip_list = array();} # 登录次数 + 1 $login_ip_list[$login_ip] += 1; update_option('LOGIN_IP_LIST', serialize($login_ip_list)); # 提示登录失败的次数 return "$login_ip 登陆次数 " . $login_ip_list[$login_ip];}); # 证明已经登录成功了 add_action("admin_menu", function () { $login_ip = $_SERVER['REMOTE_ADDR']; $login_ip_list = unserialize(get_option("LOGIN_IP_LIST")); $login_ip_list[$login_ip] = 0; update_option('LOGIN_IP_LIST', serialize($login_ip_list));});
提示:限制每个ip登陆的次数。同时还可以看到有几个ip试图登陆网站!
提示:判断该ip登陆失败的次数(超过3次阻止登陆)可以修改你想要的次数!