我正在开始我的第一次创业。我无法忍受在注册网站时尝试读取验证码,也不希望我的用户这样做。我寻找替代方案,然后我发现了复选框验证码 http://uxmovement.com/forms/captchas-vs-spambots-why-the-checkbox-captcha-wins/。这是如何完成的,使用 JavaScript 加载复选框,并使用通常用于制作注册表单的相同代码对其进行验证?
Thanks.
我查看了您发布的文章中链接的示例。乍一看,这似乎很容易绕过。
复选框验证码的工作原理是垃圾邮件机器人不会解析或使用网页中嵌入的 JavaScript 代码。因此,他们不会在正在搜索的表单中找到验证码复选框元素,因此不会随表单一起发送复选框的发布值,并且在服务器端,如果复选框值没有发送。
这样做的问题是:
- 复选框名称始终相同(
gasp_checkbox
)
- 机器人可以很容易地被“训练”来检测页面上的这个 JavaScript 并采取相应的行动
- 即使您输出必须用于复选框的随机名称和值,仍然可以检测到它
这三个问题的结果意味着这比图像验证码或其他方法更容易被破解。机器人在提交您的表单时所要做的就是添加:gasp_checkbox=on
他们的 HTTP 请求。
也就是说,如果您在自己的网站上自己实现此功能,则任何机器人都不太可能通过它,因为它的使用并不广泛。
您可以通过执行以下操作使其更加安全:
- 在服务器端为复选框生成唯一的名称/值对,并将这些值以模糊的 javascript 形式输出到客户端
- 远离表单提供脚本,最好是在脚本生成的外部 javascript 文件中。
- 验证为复选框发送的值是否与之前生成且之前未使用过的值对匹配。
如果你做了这些事情,我认为你可以获得一个有效的复选框验证码。如果有人确实在您的网站上发现了它,即使采取了上述保护措施,击败它可能仍然是微不足道的,但这可能需要一段时间,并且在大多数情况下对您仍然有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)