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

想法吗?


当前回答

令人困惑的一件事是谷歌,显然是世界上拥有最多CS博士的公司,他们的验证码被破坏了,而且似乎没有采取任何措施。

其他回答

我一直在使用http://stopforumspam.com作为对抗机器人的第一道防线。在我已经实现的网站上,它可以阻止几乎所有的垃圾邮件发送者,而不使用验证码。

@rob

蜜罐验证码怎么样? 哇,这么简单!看起来不错!尽管他们强调了无障碍问题。你认为这在SO会是一个问题吗?我个人觉得很难想象开发人员/程序员阅读屏幕有困难到需要屏幕阅读器的地步。

有些开发者不仅是法律上的盲人,而且是100%的盲人。手杖和辅助犬。我希望这个网站能支持他们在一个合理的方式。

然而,使用蜜罐验证码,您也可以放置一个隐藏的div,告诉他们将字段留空。如果他们填了,你也可以把它放在错误信息中,所以我不确定可访问性在这里有多大的问题。这肯定不太好,但也可能更糟。

这将是每次注册,而不是每次发布,对吧?因为这只会杀死站点,即使使用jQuery自动化。

有人还建议使用Raphael JavaScript库,它显然可以让你在所有流行的浏览器的客户端上作画:

http://dmitry.baranovskiy.com/raphael/

.. 但这并不完全适用于我的<noscript>情况,不是吗?:)

因此,CAPTCHA对所有用户都是强制性的 除了版主。[1]

这太愚蠢了。所以会有用户可以编辑网站上的任何帖子,但没有验证码就不能发布?如果你有足够的代表投票帖子,你有足够的代表发布没有验证码。如果有必要,可以调高一点。此外,你可以使用大量的垃圾邮件检测方法而无需图像识别,因此即使是未注册的用户也不需要填写那些该死的CAPTCHA表单。