看起来我们将为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>兼容的验证码,如果可能的话。

想法吗?


当前回答

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

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

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

其他回答

@ pc1oad1letter我也注意到在我的帖子。然而,这只是一个想法,而不是实际的实现。改变字体或使用不同的颜色,而不是粗体/斜体,可以很容易地解决可用性问题。

如果你倾向于问题/答案解决方案,我曾经向用户展示了3-5个随机问题,他们可以从中选择,然后回答来证明他们是人类。该列表在每次页面加载时排序不同。

我确信大多数页面都是使用支持鼠标悬停的控件(按钮、链接等)构建的。

不是显示图像并要求用户输入内容,而是要求用户将鼠标移动到任意控件(以随机顺序选择控件(任何按钮或链接))。 并将颜色应用到控件(一些随机的颜色)上鼠标(小JavaScript做的伎俩).. 然后让用户在鼠标上输入他/她所看到的颜色。

这只是一种不同的方法,我并没有实现这个方法。但这是可能的。

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

Mixriot.com使用ASCII艺术验证码(不确定这是否是第三方工具)。

 OooOOo  .oOOo.  o   O    oO   
 o       O       O   o     O   
 O       o       o   o     o   
 ooOOo.  OoOOo.  OooOOo    O   
      O  O    O      O     o   
      o  O    o      o     O   
 `OooO'  `OooO'      O   OooOO