战胜垃圾邮件注册(Defeating spam registrations)

2019-10-19 13:19发布

我努力学习尽可能多的有关运行高调网站。 我设计了一些用户注册屏幕,并考虑典型的CAPTCHA,或者讨厌的替代品。 在我看来,让他们或者导致可访问性问题,或者干脆困扰的潜在客户,并抑制其注册过程。

我的问题是垃圾邮件机器人是否承认并触发JavaScript事件,如keydownkeypress在输入栏上的事件。 据我所知,大多数机器人只需通过action属性做到表单提交,不编程“填写” Web表单。

从理论上讲,我可以添加JavaScript是类似以下内容:

<input name="email" />
<input name="human" type="hidden" />
<script>
var emailField = document.getElementById( 'email' );
emailField.onkeydown = function( ) {
   document.getElementById( 'human' ).value = "human";
};
</script>

然后,在服务器端,我可以验证后数据包括隐藏的表单字段“人”的价值。

这是一个可行的解决方案,至少是有效的在一堆乱,难以读取字符键入? 将利用由服务器随机生成的值是重复的尝试不是“人”的静态值更有帮助?

Answer 1:

大多数垃圾邮件机器人就干脆找一个<form>您的网页上,然后直接上传数据到指定的URL action属性。 这个很简单,重量轻,很容易做到。

有些垃圾邮件机器人将实际使用模拟浏览器(如PhantomJS),它在页面上执行的JavaScript。 这些垃圾邮件机器人更难傻瓜,但很少机器人使用此方法,因为它是昂贵得多(在CPU和RAM)。

我发现它的大致天晴去通过一个蜜罐(字段被删除程序的页面,以及其他类似的方法上)阻塞最常见的垃圾邮件机器人。 有些僵尸会打不通,谁都谁做人工分析来找到一种方法来利用你的页面会仍然得到。对于大多数网站,这是不够好,并提供防止垃圾邮件,同时保持你的网站使用了很好的平衡。



文章来源: Defeating spam registrations