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

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

【问题讨论】:

标签: captcha


【解决方案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 无法回答这些问题,但大多数幼儿园儿童可以。
      猜你喜欢
      • 2011-01-19
      • 2011-01-16
      • 2022-01-09
      • 1970-01-01
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      相关资源
      最近更新 更多