我讨厌验证码,你认为有更好的解决方案吗?
数学问题变得越来越受欢迎。
例如:3 + 2等于多少?
这些问题通常比验证码更容易阅读,因为有些用户可能会感到非常困惑。
您可以查看实用的非图像验证码方法?
我之前发过一个问题需要易于使用但安全的验证码的建议/想法
然而,如果用户因验证码的存在而感到烦恼,那么关于这个问题已经有很多辩论,人们仍在努力寻找一种通用解决方案,即使对于非常流行的网站也可以工作。
您应该查看http://nedbatchelder.com/text/stopbots.html了解负面验证码的实现。但不幸的是,就网站特定的垃圾邮件攻击(当您的网站变得非常受欢迎时)而言,这还不够有效,据我所知。作者说他已成功地在不那么流行的网站上使用这些技术。当前最先进的负面验证码的总体结论是,无论您使用什么技术,只要针对您的网站,垃圾邮件发送者就可以编写他们的机器人在一定时间内破解它。当您的网站变得非常受欢迎时,他们可能会针对您的网站进行攻击。但是,在您的网站不是非常流行之前,您肯定可以使用这些验证码。
visibility: hidden; position: absolute
。这么做的动机是让输入对用户不可见,但对机器人可见。因此,每当您收到填写了特定输入的请求时,您就知道它不是人工操作。visibility: hidden; position: absolute
,以便它仍然占用空间,但不会影响设计。这是为了应对那些使用更复杂技术来检测隐藏输入的机器人,因为对于JS而言,如果它占用任何空间,则不是隐藏的。
<!-- 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时,垃圾邮件就停止了。有一个不错的技巧,您可以通过将一个空输入 displayed none
显示给机器人,但对用户不可见来使用。
如果该输入字段!==""
为空,则对表单返回false。
更多信息请参见http://klauskjeldsen.dk/avoid-html-form-spam-using-css/