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

想法吗?


当前回答

我有两个解决方案,一个需要JavaScript,另一个不需要。两者都比7 + 4更难打败,但在海报上看,它们都没有reCaptcha那么难。我想出了这些解决方案,因为我需要为AppEngine提供验证码,而AppEngine提供了一个更受限制的环境。

不管怎样,这里有演示的链接:http://kevin-le.appspot.com/extra/lab/captcha/

其他回答

我想他们正在研究节流。对于500+ rep的用户禁用CAPTCHA并为攻击者重置rep会更有意义。

我推荐一些琐事问题。不是每个人都能理解字母的ASCII表示,有多个运算的数学问题会让人困惑。

虽然我们都应该知道基本的数学,但这个数学难题可能会引起一些困惑。在你的例子中,我相信有些人会回答“8”而不是“1”。

用粗体或斜体突出显示随机字符的简单文本字符串是否合适?用户只需要输入粗体/斜体字母作为验证码。

例如ssdfatwerweajhcsadkoghvefdhrffghlfgdhowfgh

在这种情况下,“堆栈”将是验证码。 显然,这个观点有很多不同的版本。

编辑:解决与此想法相关的一些潜在问题的示例变体:

使用随机颜色的字母代替粗体/斜体。 使用每秒钟红色字母作为验证码(减少机器人识别不同格式的字母来猜测验证码的可能性)

实际上,有一个与编程相关的验证码集是一个不错的想法。例如:

有人可能会构建一个语法检查器来绕过这个,但绕过验证码需要做更多的工作。不过,您应该知道有一个相关的验证码。

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

我喜欢这个主意,难道我们就不能直接加入代表系统吗?我的意思是,任何拥有100 + rep的人都有可能是人类。所以如果他们有代表,你甚至不需要在验证码方面做任何事情。

然后,如果他们不是,然后发送它,我相信它不会花那么多帖子到100,社区会立即扑向任何似乎是带有攻击性标签的垃圾邮件,为什么不添加一个“报告垃圾邮件”链接,降低200?获得3个,垃圾邮件成就解锁,再见;)

编辑:我还应该补充一点,我喜欢非图像验证码的数学想法。或者是一个简单的谜语类型的东西。可能会让帖子更有趣^_^