2011-09-04 183 views
2

我为我的网站创建了自定义验证脚本,因为人们需要验证每个小时以确保他们没有使用脚本/自动刷新获得优势。为了让体验尽可能简单,图像以1到9之间的数字显示。我用photoshop手动创建了所有这些图像,以使它们稍微难以看清。用户必须点击1到9之间的随机“数字键盘”,并在第一张图像下面显示正确的数字。验证码验证

我的问题如下:

有多容易有人写一些实物的脚本/程序,可以阅读源代码,请参阅随显示图像的div名称然后读取文件名以查看图像名称,然后使用OCR单击图表上的正确数字?

我完全不知道我怎么会开始这样做,但我想知道是否有必要每次都将图像文件名更改为随机数,而不是像number1.png,number2.png等

非常感谢您的帮助和建议

+1

我确信已经有很多可用的实现可以免费使用。为什么浪费你的时间试图再次发明轮子? – Jeroen

+0

我已经搜索了很多次,那里没有可用的验证码,完全适合我的需求。它们都涉及用户不得不浪费太多时间。验证应该快速简单,不复杂且浪费时间。这就是我创建自定义验证脚本的原因。 – James

回答

2

我认为这将是真的太容易了!

  1. 它真的很容易读取divs名称!
  2. 是的,你应该每次都改变图像名称
  3. 如果图像只有9个,攻击者可以打几个小时,保存所有不同的图像,然后他甚至不需要OCR,因为他只会比较图像逐像素!
+0

我曾经考虑过动态创建图像并使它们完全不同,但是这对于php函数来说非常困难(我感到非常困惑)。 出于好奇,地球上有人写东西读取div /保存图像并将像素与像素进行比较?我甚至不知道从哪里开始,所以我想了解该方法,以便提高我的知识水平。 – James

0

静态图像根本不是CAPTCHA,因为用户可以将每个静态文件映射到一个数字并绕过您的机制。

+0

这个人怎么去做这件事?我很想知道有人会这么做,他们甚至会用它来做什么。我知道静态图像不是CAPTCHA,但是我在PHP中创建图像时遇到了一些困难,所以我提出了一个快速修复的解决方案,我可以在不久的将来使用动态图像生成技术来提高它的性能。 – James

+0

恶意用户可以搜索每个图像的唯一值(如计算出的散列值,文件大小等),并将此唯一值映射到其代表的数字,从而允许简单跳过您的伪CAPTCHA系统 – sternr

0

您应该使用随机数字和随机名称动态创建图像。将号码存储在某个地方(主要是在会话变量中)并将用户输入与该值匹配。

+0

由于Jeroen提到有第三方插件可用于您可以使用的相同。 –

+0

正如另一条评论所述,我想动态创建图像,但用php绘制(我认为)证明很困难,而且这一切都有点令人难以置信。我想我必须回去再想一想。 – James