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

想法吗?


当前回答

你是否打算为Stackoverflow提供一个API,允许以编程方式操纵问题/答案?如果是这样,基于CAPTCHA的保护将如何适应这种情况?

虽然通过Atom聚合提要提供了一个丰富的只读接口,但它允许人们创建一些有趣的智能客户端/工具,用于组织和搜索Stackoverflow的大量内容;我认为在网页界面之外拥有提问和/或回答问题以及对内容投票的功能是非常有用的。(尽管这可能不符合基于广告的收入模式。)

我更愿意看到Stackoverflow使用启发式监控方法,试图检测恶意活动并阻止违规用户,但我可以理解使用CAPTCHA可能是一种更简单的方法,因为您的发布数据即将发布。

其他回答

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

有史以来最好的验证码!也许你需要像这样的东西来注册,以防止庸人进入。

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

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

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

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

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

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

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

最近,我开始添加一个标签,名称和id设置为“message”。我将它设置为隐藏与CSS(显示:none)。垃圾邮件机器人看到它,填写并提交表单。服务器端,如果文本区域与id名称填写我标记为垃圾邮件。

我正在研究的另一项技术是随机生成名称和id,其中一些是垃圾邮件检查,另一些是常规字段。

这对我来说非常有效,我还没有收到任何成功的垃圾邮件。然而,我的网站的访问者却少得多:)