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

想法吗?


当前回答

将一个数学问题发布为IMAGE,为了清晰起见,可能会使用附图。

只是图像中清晰可见的文本。

(2+5)*2

其他回答

不是最精致的反垃圾邮件武器,但是微软支持:

Nobot-Control (AjaxControlToolkit的一部分)。

NoBot可以通过违反上述任何技术进行测试:快速回发、多次回发或禁用浏览器中的JavaScript。

演示:

http://www.asp.net/AJAX/AjaxControlToolkit/Samples/NoBot/NoBot.aspx

这是我的验证码努力:

The security number is a spam prevention measure and is located in the box
of numbers below. Find it in the 3rd row from the bottom, 3rd column from
the left.

208868391   241766216   283005655   316184658   208868387   241766212   

241766163   283005601   316184603   208868331   241766155   283005593   

241766122   283005559   316184560   208868287   241766110   283005547   

316184539   208868265   241766087   283005523   316184523   208868249   

208868199   241766020   283005455   316184454   208868179   241766000   

316184377   208868101   241765921   283005355   316184353   208868077   

当然,这些数字是随机的,行和列的选择以及左/右上/下的选择也是随机的。一个人留言告诉我“顺便说一句,安全问题太恶心了”:

http://jwm-art.net/dark.php?p=louisa_skit

点击“添加评论”查看操作。

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

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

避免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

欢迎任何批评。

我编写了一个相当大的新闻网站,一直在摆弄验证码和分析垃圾邮件机器人。

我所有的解决方案都是针对中小型网站的(就像这个主题中的大多数解决方案一样) 这意味着他们可以防止垃圾邮件机器人发布,除非他们为你的网站(当你很大的时候)制定了特定的解决方案。


我发现一个很好的解决方案是垃圾邮件机器人不会访问你的文章后48小时后,你发布它。 由于新闻网站上的一篇文章在发布后48小时内就能获得大部分浏览量,因此它允许非注册用户在无需输入验证码的情况下发表评论。


我见过的另一个很好的验证码系统是WebDesignBeach做的。 你有几个对象,你必须拖放一个到一个特定的区域。很有创意,不是吗?