更难,更好,更快,更强......基于图像的CAPTCHA技术?

时间:2008-10-13 03:05:33

标签: captcha spam-prevention

有许多基于非图像的CAPTCHA想法浮出水面。但是老式的呢?

CAPTCHA的良好形象有哪些要素?什么视觉元素对于计算机来说很难,但对人类来说更容易?错误,计算机比人类更容易的元素呢?有哪些提高CAPTCHA生成器的速度的好方法?

这是我一直在努力的CAPCHA的一个例子。它生成两个正弦波的函数,然后在它们之间拉伸文本。它是从一组图像中提取的背景。 Image-based CAPTCHA

如何改进? (具体来说,我正在使用PHP GD。)想到的事情是:

  • 更改文字的颜色,可能会使其变色。
  • 添加“划痕”或标记,使文字略微模糊。
  • 添加失真,使其受到水平正弦波的影响。

精彩图片CAPTCHA的内容是什么?


编辑: 我知道有一些非常有价值的第三方CAPTCHA资源。我正在寻找使他们好的属性。我想使用自己的CAPTCHA,只是为了自我改进。所以,你可以谈谈reCAPTCHA,但这并不是我正在寻找的。

此外,有人提出,不仅图像,而且体验很重要,所以请随意评论。

10 个答案:

答案 0 :(得分:5)

将每个字母/数字用于模式,I.E。没有连接的点。这意味着计算机无法知道点是除了模式识别之外的一个字母的一部分(它们还没有。)然后是通常的扭曲和随机线。

如何做到这一点是挑战。

编辑:此外,不同形状的图案的奖励积分,并尝试字符(在边缘或整个字符)上的alpha透明度,因此它们与背景合并。

答案 1 :(得分:3)

难以分开字母。使用类似手写的字体或添加连接字母的行。减少并随机化字母之间的间距。

在其他轴上添加波形失真。一个轴上的失真只能相对容易地分析和反转。

根本不打扰彩色背景。从其他颜色自动过滤黑色非常容易。你的背景只会阻碍人类。

除非与字母具有相同的厚度,否则不要添加划痕或其他噪音。噪音消除算法可以轻松删除比字母更薄的内容。

答案 2 :(得分:1)

如果字母的颜色渐渐变成其他颜色怎么办...例如,5可以从顶部的黄色开始,然后淡入蓝色或其他颜色。选择的颜色应该是随机的。

由于背景多彩,可能会使计算机难以在背景结束且角色开始的地方拾取..并且希望人类实际拾取模式并不困难。

答案 3 :(得分:1)

您可以在数据库中创建一个验证码表,而不是生成验证码,您可以通过在谷歌搜索来创建表格,以获得良好的验证码图像。

所以不用担心“这一代方法会起作用吗?”

答案 4 :(得分:0)

我真的很讨厌网站上的CAPTCHA,他们只是惹恼了我,但是如果你想尝试做一个强大的尝试,请尝试以下方法:

  • 无需提交即可获得新图片
  • 视障人士的口语版
  • 非均匀字符

我在一些网站上使用了Recaptcha,这是一个很好的强大解决方案。

或者,如果你想真的很开心,请查看:http://research.microsoft.com/asirra/

答案 5 :(得分:0)

尝试破解验证码的算法是模式匹配器,它通过几种不同的方式工作:缩放和倾斜它们已经知道的符号,查找和跟踪边缘,以及计算内部空洞以提供帮助。如果您可以将信件分成几部分,改变字母质量,或在字母上添加强烈的线条或“划痕”,这些技巧将有所帮助。然而,考虑到我们recaptcha用于此目的,所有这一切都没有实际意义,而且这是一个很棒的第三方应用程序。此外,验证码将有助于您网站的安全性,但不会阻止那些真正被诱惑的人。

答案 6 :(得分:0)

警惕ReCaptcha的建议。我已经提交了几十次不正确的输入,并且每次都取得了成功。有几次我提交了两个单词的错误输入,而不仅仅是最模糊的单词;正如我所说,成功率一直是100%。

我还认为基于图像的CAPTCHA是用户敌对的,应该尽可能避免。基于文本的解决方案的优势在于,您可以根据您的网站的受众量身定制它们,增加一定程度的模糊性,随着基于文本的解决方案变得更加精明,可能会使计算机瘫痪。

至少,请不要一直使用它:orange
(来源:codinghorror.com

答案 7 :(得分:0)

我喜欢KittenAuth和Microsoft Asirra项目的想法。这个想法是,虽然OCR最终将演变为打破你的传统验证码,但是将小猫与狗区分开来的能力是一个问题的复杂程度要高出许多个数量级,而对于人类来说绝对是微不足道的。

这个解决方案虽然可能是有史以来最性感的验证理念,但却具有不易移植到听力障碍方法的局限性。

答案 8 :(得分:0)

如何剪切和改组乐队以显示和仅鼠标输入?

首先拍摄正弦波变形文本,分成水平波段或者甚至是网格。

这使得光学识别变得更加困难,并且可能会让你避免那些让人类难以接触的讨厌的背景游戏。

对于一个可以依赖浏览器中的本地拖动的网站,而不是输入一个条目,使用需要用户重新排序的洗牌(只是在草率的顺序,而不是像其中一个谜题)。或者,如果您想单独使用点击,那就是经典的sliding tile难题。

注意,我遇到了一个验证码,在那里您必须确定哪些N卡通中有一只动物成功阻挡了我!

Wellington Grey很好地总结了AI CAPTCHA比赛。

答案 9 :(得分:0)

您可以添加随机字体数组,以便GD使用不同的字符呈现每个字符。