我正在开始我的第一次启动.我无法忍受在注册网站时尝试阅读验证码,不希望我的用户访问.我寻找替代品,我找到了checkbox captcha.如何完成,使用JavaScript加载复选框,并使用与通常用于制作注册表单相同的代码验证它?
谢谢.
解决方法:
我查看了您发布的文章中链接的示例.乍一看,这似乎很容易被绕过.
复选框验证码的工作原理是垃圾邮件机器人不解析或使用嵌入在网页中的JavaScript代码.因此,他们不会在搜索的表单中找到captcha复选框元素,因此不会为复选框和表单发送post值,如果复选框值,则在服务器端拒绝表单没发送.
这个问题是:
>复选框名称始终相同(gasp_checkbox)
>机器人可以很容易地“训练”在您的页面上检测此JavaScript并采取相应的行动
>即使您输出必须用于复选框的随机名称和值,仍然可以检测到它
这3个问题的结果意味着这比图像验证码或其他方法更容易破解.所有机器人在提交表单时都要做的就是添加:gasp_checkbox = on到他们的HTTP请求.
也就是说,如果您在自己的网站上为自己实现这一点,那么任何机器人都不可能通过它,因为它的使用并不普遍.
您可以通过执行以下操作使其更安全:
>为服务器端的复选框生成唯一的名称/值对,并将这些值以模糊的javascript输出到客户端
>将脚本从表单中提取出来,最好是在脚本生成的外部javascript文件中.
>验证为复选框发送的值是否与之前生成的对匹配,以前未使用过.
如果你做那些事情,我认为你可以有一个有效的复选框验证码.如果有人确实在你的网站上发现它,即使采用上述保护措施,也可能会失败,但这可能需要一段时间,但大多数时候仍然对你有效.