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

想法吗?


当前回答

利用社区本身来仔细检查这里的每个人是否都是人,比如像信任网一样的东西,怎么样?为了找到一个真正值得信赖的人来创建网站,我建议使用这个验证码来确保他绝对是100%的人类。

Rapidshare验证码-黎曼假设http://codethief.eu/kram/_/rapidshare_captcha2.jpg

当然,有一个很小的机会,他会忙着准备他的菲尔兹奖演讲,来帮助我们建立信任的网络,但是……

其他回答

reCAPTCHA大学赞助并帮助图书数字化。

我们生成和检查扭曲的图像,所以你不需要运行昂贵的图像生成程序。

当我看到一个关于人类计算的视频(该视频是关于如何使用人类通过游戏来标记图像)时,我有了一个想法来构建一个验证码系统。人们可以使用这样的系统来标记图像(可能用于其他目的),然后使用关于标记的统计信息来选择适合验证码使用的图像。

假设有一张图片,90%的人都给它贴上了“猫”或“摩天大楼”的标签。然后可以呈现图像,要求图像最明显的特征,这将是图像的主导标签。

这可能超出了SO的范围,但有人可能会发现这是一个有趣的想法:)

我认为一个定制的验证码是你最好的选择。这种方法需要一个专门针对机器人/脚本来破解它。这种努力因素应该会减少尝试的次数。人类毕竟是懒惰的

修正语法错误的验证码:

echo "Hello, world!;
for (int $i = 0; $i < 10; $i ++ {
  echo $i /*
}

括号和引号被随机移除。

机器人可以自动检查语法错误,但他们不知道如何修复它们!

我有一些想法想和你们分享……

避免OCR的第一个想法

一个验证码对用户来说有一些隐藏的部分,但完整的图像是两个代码在一起,所以OCR程序和验证码农场读取图像,包括可见部分和隐藏部分,尝试解码它们,但未能提交…-我已经准备好解决这个问题,并在网上工作。

http://www.planethost.gr/IdeaWithHiddenPart.gif

第二个想法,让它更容易

一页有很多单词,人类必须选择正确的一个。我也创建了这个,很简单。文字是可点击的图像,用户必须点击正确的图像。

http://www.planethost.gr/ManyWords.gif

没有图像的第三个想法

和以前一样,但是有div和文本或小图标。用户必须只点击正确的一个div/字母/图像,无论如何。

http://www.planethost.gr/ArrayFromDivs.gif

最终想法——我称之为CicleCaptcha

还有一个我的CicleCaptcha,用户必须在图像上找到一个点。如果他找到并点击它,那么是一个人,机器可能会失败,或者需要制作新的软件来找到解决这个问题的方法。

http://www.planethost.gr/CicleCaptcha.gif

欢迎任何批评。