如何防止机器人自动提交表单?

时间:2010-07-12 18:42:43

标签: coldfusion captcha coldfusion-6

我正在运行ColdFusion MX,因此在表单提交之前,我无法在我的应用程序中使用内置cfimage Captcha functionality

但问题是没有验证码机器人提交表格。

什么是阻止自动提交的最佳方法?

5 个答案:

答案 0 :(得分:9)

Captchas不一定是图像!

尝试以下解决方案之一:

  • 大多数机器人不懂CSS。创建两个提交按钮,第一个具有将被服务器拒绝的值,第二个具有将被服务器接受的值。使用CSS隐藏第一个。
  • 要求用户回答简单的数学问题。这将要求您创建数学问题并将预期的解决方案存储在某处(如用户的会话),然后将用户提交的答案与存储的答案进行比较。为了获得额外的保护,您可以创建简单的加法,减法和乘法问题。避免分裂,剩余部分对某些用户来说是一种痛苦。
  • Bots读取表单元素的名称,并倾向于忽略文本标签。尝试创建名为“optout”的复选框(如新闻稿),默认情况下已选中。在复选框旁边,要求用户取消选中复选框(如果他们是人)。相反的技术也有效(您要求用户检查未选中的复选框)。

所有这些解决方案都可以在没有第三方代码或API调用的情况下完成。

话虽如此,reCAPTCHA非常好,很容易集成到任何环境中。

答案 1 :(得分:6)

看一下cfformprotect - 它适用于CFMX 6和所有后来的引擎。

它旨在通过各种方法来完全访问 - 并且对大多数用户不可见 - 以阻止僵尸程序和垃圾邮件发送者。

另外,您可能需要查看与CFMX 7兼容的CF wrapper for reCaptcha

答案 2 :(得分:4)

我使用不同技术的技术是使用图像按钮。您的POST处理程序获取单击图像的x,y坐标。我发现机器人(只是生成帖子请求)正在传递0,0并且通过在地板上删除这些请求,我将垃圾邮件的帖子降低到低于实际的数量。对不起,我不知道如何在CF中这样做,但我希望这项技术对你有用。

答案 3 :(得分:1)

无论您使用哪种解决方案,在处理之前在服务器端进行数据验证总是一个好主意。

这篇文章可能有所帮助:http://www.bennadel.com/blog/405-Fully-Accessible-Spam-Form-Submission-Blocking-Using-ColdFusion-And-X-HTML-Version-III-.htm

答案 4 :(得分:0)

如何使用计算方法?就像8 + 5 =?

OR

如何使用ColdFusion.Ajax.submitForm?