本站开放注册是想让更多的同道中人一起学习进步分享所得的目的,单近日(2019.06.07-10)本站遭到不明人士恶意注册,很是气人,所以本篇文章分享的是网站如何防止他人恶意攻击。
真是搞的是很烦人,本站采用的是WordPress程序,所以就想着添加一个注册时的验证,到网上搜到很多,比如使用极验的方法,但是还要注册账号什么的,比较麻烦,不太想用。
在网上全百科搜集了以下8中比较实用的方法,有些适用于所有网站。
第一种直接关闭注册功能。也可以在注册页面上加入验证码等功能,防止机器恶意注册。
第二种一个纯代码实现的方法。具体如下:
把下面这段代码添加到自己的functions.php,其中的验证问题我使用了本站的域名“”,你也可以改成其他内容。注意改的时候,代码第四行和倒数第四行都有,要改两处哦
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>: 您的回答不正确。' ); }}复制
第三种安装Wordfence Security插件,可以在插件里面查看最近登陆的ip,以及尝试注册、登陆的ip,针对该ip(段)进行block。
第四种更改wordpress登陆URL防止恶意注册
WP 默认的登陆URL是wp-login.php或wp-admin.php(许多spamer会根据这些footprint来收集可注册的wordpress站点,然后你的站内就多出许多垃圾评论。如果你不想成为其中的一员,那就改改登录url吧)
可以通过在 .htaccess 添加如下代码把登陆 URL 改成 login:
RewriteRule ^login$ [NC,L]复制
或者login改为自己的认为好记又不容易被识别的字符也可以哦
第五种随机加法验证码
把以下全部代码丢进模板函数functions.php
/*-----------------------------------------------------------------------------------*/ /* WordPress注册用户随机数字验证码 /*-----------------------------------------------------------------------------------*/ # 注册用户添加验证码第一种 function loper_register_english_figures() { # 获取两个随机数, 范围0~99 $num1=rand(0,99); $num2=rand(0,99); echo "<p> <label for='math' class='small'>验证码:$num1 + $num2 = ? </label> <input id='math' type='text' name='sum' class='input' size='25'> <input type='hidden' name='num1' value='$num1'> <input type='hidden' name='num2' value='$num2'></p>"; } add_action('register_form','loper_register_english_figures'); # 判断验证码是否空白和错误 function loper_register_calculation() { $sum=$_POST['sum']; switch($sum){ case $_POST['num1']+$_POST['num2']:break; case null:wp_die( __( '错误:请填入验证码!' ), '', array( 'back_link'=>true ) );break; default:wp_die( __( '错误:验证码不正确!' ), '', array( 'back_link'=>true ) );} } add_action( 'register_post', 'loper_register_calculation');复制
第六种WordPress用户注册时验证邮箱真实性实现代码
邮箱地址验证接口
请求地址:
请求方式:post
请求参数:emails=邮箱地址
返回值:包含邮箱地址验证结果的json数据。
DUX主题注册增加邮箱地址真实性验证
打开dux主题下的action文件里面的log.php文件,增加如下代码: