我发现WordPress注册界面有一个流程逻辑问题。󠄐󠄹󠅀󠄪󠄡󠄨󠄞󠄩󠄧󠄞󠄡󠄤󠄞󠄩󠄠󠄬󠅒󠅢󠄟󠄮󠄐󠅅󠄹󠄴󠄪󠄾󠅟󠅤󠄐󠄼󠅟󠅗󠅙󠅞󠄬󠅒󠅢󠄟󠄮󠅄󠅙󠅝󠅕󠄪󠄡󠄧󠄧󠄣󠄢󠄡󠄤󠄧󠄤󠄥󠄬󠅒󠅢󠄟󠄮

发现问题:

如果使用默认的注册界面流程:

理想的情况是:

填入邮箱和用户名 -> 注册发送邮件 -> 用户打开邮件 -> 点击链接修改密码 -> 注册完成󠄐󠄹󠅀󠄪󠄡󠄨󠄞󠄩󠄧󠄞󠄡󠄤󠄞󠄩󠄠󠄬󠅒󠅢󠄟󠄮󠄐󠅅󠄹󠄴󠄪󠄾󠅟󠅤󠄐󠄼󠅟󠅗󠅙󠅞󠄬󠅒󠅢󠄟󠄮󠅄󠅙󠅝󠅕󠄪󠄡󠄧󠄧󠄣󠄢󠄡󠄤󠄧󠄤󠄥󠄬󠅒󠅢󠄟󠄮

而真实的情况往往是

填入邮箱和用户名 -> 注册发送邮件 -> 邮件未发送到或丢失 -> 无法修改密码 -> 无法登录

作为博主我们会发现后台拥有大量的僵尸账号,并且有些别有用心的人会因为这个原因批量注册大量的账号而占用我们的数据库。󠄐󠄹󠅀󠄪󠄡󠄨󠄞󠄩󠄧󠄞󠄡󠄤󠄞󠄩󠄠󠄬󠅒󠅢󠄟󠄮󠄐󠅅󠄹󠄴󠄪󠄾󠅟󠅤󠄐󠄼󠅟󠅗󠅙󠅞󠄬󠅒󠅢󠄟󠄮󠅄󠅙󠅝󠅕󠄪󠄡󠄧󠄧󠄣󠄢󠄡󠄤󠄧󠄤󠄥󠄬󠅒󠅢󠄟󠄮

解决方案:

在注册界面就让用户填写密码,这样正常注册就和邮箱解耦,因为用户已经设置好密码了。

再加上一个验证码机制,拦截Bot注册就行了󠄐󠄹󠅀󠄪󠄡󠄨󠄞󠄩󠄧󠄞󠄡󠄤󠄞󠄩󠄠󠄬󠅒󠅢󠄟󠄮󠄐󠅅󠄹󠄴󠄪󠄾󠅟󠅤󠄐󠄼󠅟󠅗󠅙󠅞󠄬󠅒󠅢󠄟󠄮󠅄󠅙󠅝󠅕󠄪󠄡󠄧󠄧󠄣󠄢󠄡󠄤󠄧󠄤󠄥󠄬󠅒󠅢󠄟󠄮

将以下代码填写到主题的 function.php 中来实现

🔒温馨提示:

此处内容需要 评论文章 后刷新网页查看!

验证码:

我目前用的是Geetest,也是一个免费的插件。󠄐󠄹󠅀󠄪󠄡󠄨󠄞󠄩󠄧󠄞󠄡󠄤󠄞󠄩󠄠󠄬󠅒󠅢󠄟󠄮󠄐󠅅󠄹󠄴󠄪󠄾󠅟󠅤󠄐󠄼󠅟󠅗󠅙󠅞󠄬󠅒󠅢󠄟󠄮󠅄󠅙󠅝󠅕󠄪󠄡󠄧󠄧󠄣󠄢󠄡󠄤󠄧󠄤󠄥󠄬󠅒󠅢󠄟󠄮

不过这个插件需要先在 https://www.geetest.com/ 官网注册一个账号,然后把idkey填写进去就能使用了

教程完毕,如果有什么更好的方案可以一起讨论。󠄐󠄹󠅀󠄪󠄡󠄨󠄞󠄩󠄧󠄞󠄡󠄤󠄞󠄩󠄠󠄬󠅒󠅢󠄟󠄮󠄐󠅅󠄹󠄴󠄪󠄾󠅟󠅤󠄐󠄼󠅟󠅗󠅙󠅞󠄬󠅒󠅢󠄟󠄮󠅄󠅙󠅝󠅕󠄪󠄡󠄧󠄧󠄣󠄢󠄡󠄤󠄧󠄤󠄥󠄬󠅒󠅢󠄟󠄮