使用WordPress程序建站时,发现后台登录可以直接输入账号和密码登录,方便黑客暴力破解。 那么,如果给后台添加验证码登录,如何实现呢? 小编将后台登录需要输入验证码的方法分享给大家。快来看看吧!
1丶根据目录找到主题/wp-content/themes/******/functions.php文件,添加如下代码↓
//后台登陆数学验证码开始 function myplugin_add_login_fields() { //获取两个随机数, 范围0~100 $num1=rand(0,100); $num2=rand(0,100); //最终网页中的具体内容 echo "<p><label for='math' class='small'>验证码: $num1 + $num2 = ?<input type='text' name='sum' class='input' value='' size='20' tabindex='4'>" ."<input type='hidden' name='num1' value='$num1'>" ."<input type='hidden' name='num2' value='$num2'></label></p>"; } add_action('login_form','myplugin_add_login_fields'); function login_val() { $sum=$_POST['sum'];//用户提交的计算结果 switch($sum){ //得到正确的计算结果则直接跳出 case $_POST['num1']+$_POST['num2']:break; //未填写结果时的错误讯息 case null:wp_die('提示: 请输入验证码.');break; //计算错误时的错误讯息 default:wp_die('提示: 验证码错误,请重试.'); } } add_action('login_form_login','login_val'); //后台登陆数学验证码结束 |
后台登录效果图如下↓
2丶根据目录找到主题/wp-content/themes/******/functions.php文件,添加如下代码↓
/*-----------------------------------------------------------------------------------*/ /* WordPress登陆后台随机混合数验证码 /*-----------------------------------------------------------------------------------*/ # 登录后台添加验证码第一种 function loper_login_english_figures() { # 获取英语和数字随机数, 范围0~99,目前是0~5,5位数 $num1=substr(md5(mt_rand(0,99)),0,5); echo "<p> <label for='math' class='small'>验证码:$num1 </label> <input id='math' type='text' name='sum' class='input' value='' size='25'> <input type='hidden' name='num1' value='$num1'></p>"; } add_action('login_form','loper_login_english_figures'); # 判断验证码是否空白和错误 function loper_login_calculation() { $sum=$_POST['sum']; switch($sum){ case $_POST['num1']:break; case null:wp_die( __( '错误:请填入验证码!' ), '', array( 'back_link'=>true ) );break; default:wp_die( __( '错误:验证码不正确!' ), '', array( 'back_link'=>true ) );} } add_action('login_form_login','loper_login_calculation'); |
后台登录效果图如下↓
以上两种方法即可实现WordPress后台登录需要输入验证码,希望可以帮助到您!