【发布时间】:2012-01-02 04:32:33
【问题描述】:
为了生成机器难以破解的验证码,我计划将文本图像(仅限黑白)转换为 CSS 代码以显示给用户。
所以这个问题有两个方面:
- 让机器难以读取验证码是个好主意吗?
- 如果是这样,将 GD 图像转换为 CSS 的最佳方法是什么?
我打算遍历图像中的所有像素,检查它们是否为黑色,如果是,则将像素写入 CSS。但是我不知道如何在 CSS 中编写黑色像素(我的 CSS 技能欠缺。)所以对于我的第二个问题,我想知道如何在 CSS 中编写黑色像素。除非有人对生成 CSS 代码有更好的想法,或者是否已经存在可以执行此操作的工具。
请注意,我正在构建自己的 CAPTCHA 系统,因为我将使用输入的输入将文本图像转换为文本(就像使用 ReCAPTCHA 系统所做的那样),除了我自己的目的。所以我必须自己构建验证码系统。
【问题讨论】:
-
为什么你认为这会有所帮助?将 html/css 渲染回可以提供给验证码破解工具的图像是微不足道的。最多只会惹恼使用旧浏览器的用户,他们错误地呈现您的 CSS,并添加了一个无用的“安全”措施,验证码破解者只会嘲笑。
-
我认为它可能会推迟更大比例的验证码破解者,因为它们可能不是用来处理 CSS 绘制的图像。但不知道是不是这样,所以才问这个问题。
-
这就是重点。将 css 转换回普通图像很容易,然后标准的 capthca 破解程序开始处理它。您所做的只是在流程中添加了一个额外的小步骤
-
好的,重点...我还是想搞点花样,只是和已经做过的不同,因为我不希望有人专门开发一个验证码破解工具我的网站。你有什么建议吗?
-
对图像进行 CSS 处理会非常臃肿。即使是简单的
<span class="black"></span>也会将您的 1 字节像素更改为 28 字节的文本。一个简单的 200x100 验证码图像大约为 10k 的 .gif 格式,您可以将其转换为 527kbytes 的 html 以及 .css 定义。巨大的膨胀。