我讨厌验证码,您认为有更好的解决方案
答案 0 :(得分:5)
数学问题越来越受欢迎
e.g。 :什么是3 + 2?
这些通常比验证码更容易阅读,这对某些用户来说可能非常混乱。
答案 1 :(得分:4)
您可以查看Practical non-image based CAPTCHA approaches?
我之前提出了一个问题Need suggestions/ideas for easy-to-use but secure captchas
然而,如果由于验证码的存在而由于用户面临的困难而感到烦恼,那么就此存在很多争论,人们仍在努力想出一个可以工作的通用解决方案非常受欢迎的网站。
您应该看到http://nedbatchelder.com/text/stopbots.html来实施Negative captchas。但遗憾的是,据我所知,对于特定于网站的垃圾邮件攻击(当您的网站非常受欢迎时),这种方法尚无效。作者说他一直在不太受欢迎的网站上成功使用这些技术。使用最先进的负面验证码的总体结论是,无论您使用何种技术,垃圾邮件发送者都可以编程他们的机器人在一段时间内破解它如果它们定位到您的网站。当它变得非常受欢迎时,它们可能会定位到您的网站。但你绝对可以使用它们直到你的网站不是很受欢迎。
答案 2 :(得分:4)
我有一个伪造的表格输入(像拉链,或者机器人喜欢填写但你真的不需要的任何其他信息),visibility: hidden; position: absolute
。这背后的动机是获得一个对用户不可见但对机器人可见的输入。因此,每当您收到填写特定输入的请求时,您就知道它不是人类。
我使用visibility: hidden; position: absolute
以便它仍占用空间,但不会使设计混乱。这是为了使用更复杂的技术来检测隐藏输入的机器人,因为对于JS来说,如果它占用任何数量的空间,则不会隐藏某些内容。
到目前为止,我还没有在很成功的网站上测试过这种技术,但仍然值得一试。但要注意一些浏览器(我正在看你的Safari / OSX!)从您的联系人列表中获取信息并自动填写所有输入字段(甚至可能是您隐藏的输入),以便您更好地检查该方向的错误。
答案 3 :(得分:4)
我在一个小型企业网站上有一封“给我发电子邮件”的表格,我希望能够最大限度地访问它;垃圾邮件机器人发现它并开始压倒合法邮件。通过阅读服务器日志,我了解到机器人正在提交表单而不首先重新获取它 - 有人缓存了我的表单,只是在他们有一些垃圾让我阅读时发送一个POST。一个隐藏的表单输入有助于几天,但是一些机器人的所有者会找出正确的输入,缓存它,并且洪水将再次开始。
我没有任何后端可以向表单添加会话信息,并且不想添加任何内容。相反,在“在此处键入您的消息”框和隐藏元素之间,我插入了写入
的脚本的输出
<!-- instructions for spam robots: we are a waste of your money, go away, thanks -->
<div class="float-left" style="font-size: x-small;">
There will be a short delay before you may submit the form. If you
have been typing in your information, the delay may already have
ended.
<br/><span>
4 ...
</span><span>
<!--
d92cbd14985295ac27929a6db7891a90ec4173a8358dcadab134cc589ce2de54
1468365bd33b520754ddb8223252e7e6e7584ddb956ef1bb28628e27cfea86c6
-->
垃圾块是随机生成的,难以压缩。我试验了需要多长时间的垃圾块。当我将表单大小提升到大约200K时,垃圾邮件就会停止。
这实际上并不是很多额外的数据,就像在页面上添加一些额外的图像一样。即使对于拨号上的假设客户,呈现文本框和呈现提交按钮之间的延迟也比实际撰写消息所需的时间短。
答案 4 :(得分:2)
有一个很好的技巧可以通过向用户设置空输入displayed none
但对机器人可见来使用。
如果该输入归档!==""
为空,则为表单返回false。
这里有更多http://klauskjeldsen.dk/avoid-html-form-spam-using-css/
答案 5 :(得分:1)
如果你讨厌验证码,那么我可以给你两个快速的其他选择: