20

什么是好的隐形验证码?我的网站需要 JavaScript,所以任何需要它的东西都可以。

4

6 回答 6

48

添加一个新的输入字段,将其标记为“请留空”,使用 CSS 将其隐藏,如果该字段已填写,则忽略该帖子。像这样:

<style type='text/css'>
#other_email_label, #other_email {
    display: none;
}
</style>
...
<form action='mail'>
<label id='other_email_label' for='other_email'>Please leave blank:</label>
<input type='text' name='other_email' id='other_email'>
...
</form>

因此人类不会看到该字段(除非他们关闭了 CSS,在这种情况下他们会看到标签并将其留空)但垃圾邮件机器人会填写它。任何填充该字段的帖子必须来自垃圾邮件机器人。

于 2009-06-09T21:13:36.867 回答
12

这是Phil Haack 的一个简单的数学验证码。它甚至可以在禁用 javascript 的情况下使用。

用他自己的话来说:

它的工作方式是渲染一些 javascript 来执行非常简单的计算,并使用 javascript 将答案写入隐藏的文本字段。当用户提交表单时,我们从隐藏的表单字段中获取提交的值,将其与秘密盐值组合,然后将整个事情散列在一起。然后我们将该值与预期答案的哈希值进行比较,该哈希值存储在 base64 编码的隐藏表单字段中。如果禁用了 javascript,那么我们会将问题呈现为可见文本字段旁边的文本,从而使通过非 javascript 浏览器阅读您网站的用户有机会发表评论。

于 2009-06-09T20:51:26.897 回答
4

我使用了 Display:None 文本框的技术,并拒绝了任何填写它的提交,并且很幸运。

于 2009-06-09T20:48:48.587 回答
1

对于谷歌推出“Invisible ReCAPTCHA”(https://www.google.com/recaptcha/intro/comingsoon/invisible.html)的价值,我已经被我的网站列入白名单。目前正在实施它,但是文档并没有那么详细...... :)

于 2016-12-13T12:52:38.900 回答
0

MTCaptcha是一种 reCaptcha 替代验证码服务,支持隐形验证码,类似于最近推出的 reCaptcha V3,它对大多数用户不可见,但如果感觉流量有风险,则会显示验证码。

于 2019-06-05T02:03:56.363 回答
-1

如果您的意思是 - 使用人类无法看到的验证码作为人类验证测试 - 我认为这是不可能的。

这样一来,忽略验证码的机器人就会被认为是真人!似乎是一个天真的垃圾邮件机器人的陷阱。

如果您希望您的受验证码保护的站点与没有 javascript 的客户端一起使用 - 那么您应该将其硬编码为 html。

此外,如果您可以可靠地识别受信任的用户(通过判断调用或通过检测某些使用模式) - 您可以让他们在没有验证码的情况下发布到您的网站。

于 2009-06-09T21:32:54.347 回答