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

想法吗?


当前回答

即使使用rep,仍然应该有某种类型的验证码,以防止恶意脚本攻击。

其他回答

谁说每个请求都必须在服务器上创建所有映像?也许你可以有一个静态的图片列表,或者从flickr中获取它们。我喜欢“点击小猫”验证码的想法。http://www.thepcspy.com/kittenauth

我确信大多数页面都是使用支持鼠标悬停的控件(按钮、链接等)构建的。

不是显示图像并要求用户输入内容,而是要求用户将鼠标移动到任意控件(以随机顺序选择控件(任何按钮或链接))。 并将颜色应用到控件(一些随机的颜色)上鼠标(小JavaScript做的伎俩).. 然后让用户在鼠标上输入他/她所看到的颜色。

这只是一种不同的方法,我并没有实现这个方法。但这是可能的。

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

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

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

虽然类似的讨论开始了:

我们正在一个经常进行数据挖掘的应用程序上尝试这个解决方案:

一个更好的验证码控制(看妈-没有图像!)

你可以在我们的建筑检查搜索中看到它的作用。

您可以查看Source并看到CAPTCHA只是HTML。

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

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

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