主题插件
交易市场

WordPress 注册表单添加验证问题,有效拦截机器人恶意注册

前段时间在开发WordPress主题用户中心功能的时候,发现WordPress本身的注册机制存在缺陷会被机器人恶意注册,导致数据库出现大量垃圾用户账号,故而在其基础上进行改进,特意增加了一个本站名称验证功能以用于识别是否是人类注册,于是记录下来。
改进后开放会员注册在整体用户体验度上还是很友好的,那么该如何将机器人恶意注册拒于千里之外呢?
这个功能还是很方便实用的,只是在注册表单增加一行验证问题即可轻易解决。

将下方代码添加进function即可实现:

//WordPress 注册表单添加验证问题
add_action( 'register_form', 'add_security_question' );
function add_security_question() { ?>
  <p>
  <label><?php _e('本站名称') ?><br />
    <input type="text" name="user_proof" id="user_proof" class="input" size="25" tabindex="20" /></label>
  </p>
<?php }
 
add_action( 'register_post', 'add_security_question_validate', 10, 3 );
function add_security_question_validate( $sanitized_user_login, $user_email, $errors) {
  // 如果没有回答
  if (!isset($_POST[ 'user_proof' ]) || empty($_POST[ 'user_proof' ])) {
    return $errors->add( 'proofempty', '<strong>错误</strong>: 您还没有回答问题。'  );
  // 如果答案不正确
  } elseif ( strtolower( $_POST[ 'user_proof' ] ) != '此处文字更换为你的站点名称' ) {
    return $errors->add( 'prooffail', '<strong>错误</strong>: 您的回答不正确。'  );
  }
}

未经允许不得转载:WordPress组织 » WordPress 注册表单添加验证问题,有效拦截机器人恶意注册

  • wordpressx
分享到:更多 ()

评论 抢沙发

评论前必须登录!

WordPressX | 主题插件交易市场

发布作品分享经验