本文最后更新于 136 天前,其中的信息可能已经有所发展或是发生改变。
最近几天遇到了一个问题,就是网站一直遇到新用户注册,邮箱一直接收到提醒。
一开始觉得这个现象还挺好,毕竟能够提高网站的访问量呀。
然后看了一眼邮件的具体内容,觉得用户名有点奇怪,这个用户名是可以点击的,点击之后发现是一个购物网站。所以,这就是借助注册时的用户名来给你传递一个消息呀。觉得和最近618到了,给我发短信一个道理。
上网查询之后,这个叫做恶意注册,或者叫做机器注册。
那么怎么办呢?
搜索之后,找到了这篇文章——WordPress网站防止他人恶意攻击的8种方法
使用了第二个方法,在主题文件中的function.php中添加一段代码来实现。
由于代码的可读性太差,于是使用了ChatGPT来进行了格式化。代码如下。
// 在注册表单中添加安全问题字段,参考网址:https://cloud.tencent.com/developer/article/1445330
add_action('register_form', 'add_security_question');
function add_security_question() { ?>
<p>
<label><?php _e('请输入本站域名:ddw2019.com'); ?><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'])) {errors->add('proofempty', '<strong>错误</strong>: 您还没有回答问题。');
// 如果答案不正确
} elseif (strtolower(_POST['user_proof']) != 'ddw2019.com') {errors->add('prooffail', '<strong>错误</strong>: 您的回答不正确。');
}
}
?>
其中,大家要自己使用的话,要把验证问题给修改了才可以呀。(一共两处,第五行和倒数第二行)
然后进入wordpress后台,把上面这段代码加入到主题文件的functions.php文件中(我加到了底部,把影响其他的代码)。
最后看一下效果
多了一个验证选项。
今天暂时够用了。如果后续还是继续收到类似的邮件的话,那就要想着其他的方法了都。
参考内容