什么是好的隐形验证码? [关闭]

Posted

技术标签:

【中文标题】什么是好的隐形验证码? [关闭]【英文标题】:What is a good invisible captcha? [closed] 【发布时间】:2010-11-01 15:09:54 【问题描述】:

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

【问题讨论】:

我不会指望 JavaScript 来做这样的事情。

在这里阅读答案:

***.com/questions/450835/…" rel="nofollow">***.com/questions/450835/…>

这个问题不是系统管理员相关。更好的地方是 ***.com

【参考方案1】:

添加一个新的输入字段,将其标记为“请留空”,使用 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,在这种情况下,他们会看到标签并将其留空)但垃圾邮件机器人会填写它。任何填充了该字段的帖子必须来自垃圾邮件机器人。

【讨论】:

这看起来不错,但如果您的网站是专门针对的 - 即手动,有人想要检查您的表单以用垃圾填充您的网站,则它不会起作用。通过查看您的 html 代码,他们会意识到他们需要将该字段留空,因此在创建机器人时他们会考虑到这一点并完成。这仅适用于 100% 自动化的蜘蛛程序,它们会寻找带有其他人链接的垃圾网站,但如果您的网站是攻击的特定目标,则不适用。 好主意,但出于好奇,为什么有人会在关闭 CSS 的情况下浏览? @Don:一个原因是他们正在使用(或模拟使用)纯文本浏览器或屏幕阅读器。 浏览器可以自动填充这些字段。例如,Chrome 会将您的电子邮件放入它看到的每个 中。如果自动填充开启。【参考方案2】:

Here's Phil Haack 的简单数学验证码。它甚至可以在禁用 javascript 的情况下使用。

用他自己的话说:

它的工作方式是渲染 一些 javascript 来执行一个真正的 简单计算并写出 使用回答到隐藏的文本字段 javascript。当用户提交 表单,我们从提交的值 隐藏的表单域,将其与 一个秘密的盐值,然后散列 整件事在一起。然后我们比较 此值与 预期的答案,它存储在 隐藏表单字段 base64 编码。如果 javascript被禁用,然后我们渲染 将问题作为文本放在旁边 可见的文本字段,从而给用户 通过非 JavaScript 阅读您的网站 浏览器有机会发表评论。

【讨论】:

唯一的问题是,如果机器人确实有 js,那么它将毫无用处。【参考方案3】:

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

【讨论】:

“蜜罐”方法。不适用于 YouTube、Twitter 等知名网站,但对我来说非常有效。【参考方案4】:

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

【讨论】:

【参考方案5】:

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

【讨论】:

【参考方案6】:

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

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

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

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

【讨论】:

蜜罐技术的实际应用表明它对nearly a decade 非常有效。几年前,我将蜜罐与 fill-in-the-blanks Q&A 挑战结合起来,这对 AI 来说很困难。例如Google 无法回答这些问题,但大多数幼儿园儿童可以。

以上是关于什么是好的隐形验证码? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

PHP 隐形验证码

本人初学Java,有啥好的图形验证码推荐吗?

PayPal如何关闭登录验证码

验证码不正确是啥原因?

qq登陆验证码 ,怎么去掉啊

JSF 2.0 验证码如何工作