我做了一个简单的JavaScript更改ID,以避免由漫游器创建帐户:
setTimeout(function() {
$("#FormAccountCreateTmp").attr("id", "FormAccountCreate");
}, 5400);
因此,在5.4秒之后,具有ID FormAccountCreateTmp
的表单具有ID FormAccountCreate
,然后可以执行jQuery / Javascript:
$("body").validator().on("submit", "#FormAccountCreate", function(e) {
if(!e.isDefaultPrevented()) {
buttonLoading($("#BtAccountCreate"));
var values = $("form#FormAccountCreate").serialize();
$.ajax({
url: "https://mywebsite.com/sig" + "nup/aja" + "x/ajax" + "_account" + "_create.php",
type: "POST",
data: values,
success: function(data) {
$("#AjaxSignup").empty().html(data);
},
error: function(exception) { console.log(exception); }
});
}
e.preventDefault();
});
但是几天以来,我让机器人到达页面注册(访问该网站的第一页)并在 23秒之后验证表单!
185.72.244.24 - - [08/Feb/2020:02:31:25 +0000] "GET /en/signup/ HTTP/2.0" 200 21891 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"
...
185.72.244.24 - - [08/Feb/2020:02:31:48 +0000] "POST /signup/ajax/ajax_account_create.php HTTP/2.0" 200 584 "https://mywebsite.com/en/signup/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"
我该怎么做才能在不添加验证码的情况下阻止这些漫游器。我可以看到Matomo访问者日志中未引用这些漫游器IPS。因此,可能会有PHP或Javascript方式阻止它们。
为什么有些人会创建这些机器人来创建随机帐户?创建这些帐户没有任何收益,我不了解他们的目标。
答案 0 :(得分:0)
对不起,我无法发表评论,因此我将在此处发布更详细的回复
也请查看https://elasticemail.com/blog/marketing_tips/how-to-prevent-bots-from-spamming-your-sign-up-forms,这是我的消息来源,并且还有其他一些选择。它讨论了博客注册表单,但仍然是相关的。
许多网站都使用它来不仅验证链接到您帐户的电子邮件是您的电子邮件,而且还确认用户不是机器人。
这将迫使控制机器人的人手动验证每个帐户。
当然,您不希望在数据库中列出帐户记录或将其永久存储在任何地方,因此只需添加一条有关创建帐户时创建帐户的记录。然后创建一个每天运行一次的cron作业,并扫描x天前未验证其电子邮件的帐户。届时,您将删除该帐户,并有选择地创建一个链接到该帐户的电子邮件或IP地址的记录,而该记录以前是他们无法验证其电子邮件地址的,并且可能是漫游器。
尽管此选项可以处理机器人程序,但您还必须考虑缺点
选择取决于您。很抱歉,我无法为您提供立即的解决方案来阻止机器人在实际注册过程中使用,但机器人正在不断改进,而机器人迟早可能会找到验证码的方法。