看起来我们将为Stack Overflow添加CAPTCHA支持。这对于防止机器人、垃圾邮件发送者和其他恶意脚本活动是必要的。我们只希望人类在这里发布或编辑东西!

我们将使用JavaScript (jQuery)验证码作为第一道防线:

http://docs.jquery.com/Tutorials:Safer_Contact_Forms_Without_CAPTCHAs

这种方法的优点是,对于大多数人来说,CAPTCHA永远不会可见!

然而,对于禁用JavaScript的人,我们仍然需要一个备用方案,这就是棘手的地方。

我为ASP编写了一个传统的CAPTCHA控件。NET,我们可以重复使用。

但是,我更倾向于使用一些文本化的东西,以避免为每个请求在服务器上创建所有这些图像的开销。

我见过这样的事情…

ASCII文本验证码:\/\/(_)\/\/ 数学难题:7减3乘以2等于多少? 小问题:癞蛤蟆和冰棍,哪个更好吃?

也许我只是在风车这里倾斜,但我希望有一个更少的资源密集型,非图像为基础的<noscript>兼容的验证码,如果可能的话。

想法吗?


当前回答

我认为比特币是一个非常实用的非图像验证码——详情请参阅http://bitcoin.org。

人们在注册时发送小额付款,确认后可以退还。你花在弄清楚验证码上的时间不会回来。

其他回答

最好的验证码系统是那些在计算机科学中滥用P=NP问题的系统。自然语言问题可能是这些问题中最好的,也是最容易被滥用的。任何可以通过简单的谷歌查询和一些检查来回答的问题(例如,太阳系中的第二颗行星是什么?是个好问题,而2 + 2 = ?在那种情况下,他是一个有价值的候选人。

我有一个phpBB 2.0网站的垃圾邮件问题,我正在运行一段时间(该网站现在升级)。 我在pbpBB论坛上找到了一个自定义验证码mod,在一段时间内工作得很好。我发现真正的解决方案是将此与(在帐户创建页面上)额外的“必填”字段结合起来。我添加了;地点和职业(平淡无奇,但很容易了解)。机器人从未尝试填充这些,仍然认为验证码是每次尝试的失败点。

Mollom是另一个可能感兴趣的askimet类型服务。来自那些编写drupal /运行acquia的人。

我只是用了一些任何人都能回答的简单问题:

天空是什么颜色的? 橙子是什么颜色? 草是什么颜色?

这使得有人必须为您的网站定制一个机器人程序,这可能不值得付出努力。如果有,你就改题。

但要确保这不是谷歌能回答的问题。这也显示了一个问题——操作顺序!