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

想法吗?


当前回答

简单的数学并不是答案——垃圾邮件发送者甚至不需要编写一个简单的解析器。谷歌将为他们做这件事,即使你使用单词而不是数字,所以它只需要在谷歌上快速搜索,它就完成了。

它也可以很容易地进行文本到数字的转换。

似乎有某种错误在SO的渲染,因为它只显示第一个链接时,这是张贴,即使预览工作正常。第二个链接是-进入谷歌,搜索“1 * 42”

其他回答

如果你做一个有不同颜色字母的验证码,并且你要求用户只输入特定颜色的字母呢?

你不只是想让人类发帖。你需要能够讨论编程主题的人。所以你应该有一个验证码,比如:

下面的C函数声明是什么意思:char *(*(**foo [][8])())[];?

=)

把它扔出去。我有一个简单的数学问题在我的联系方式之一,简单地问

什么是[数字1-12]+[数字1-12]

我可能一个月收到5-6封垃圾邮件,但我没有那么多流量。

Ajax Fancy Captcha类型的图像,除了你必须拖放基于形状识别,而不是输入字母/数字包含在图像上。

我最近(不记得在哪里了)看到了一个显示一堆图片的系统。每幅画都有一个指定的字符。然后,用户被要求为一些图片输入字符,这些图片展示了某些类别的例子(汽车、计算机、建筑物、鲜花等)。图片和字符以及类别每次都会改变,以构建CAPTCHA字符串。

唯一的问题是与这种方法相关的更高带宽,并且您需要大量分类的图片。没有必要浪费太多资源来生成图片。