【问题标题】:captcha or not? [closed]验证码与否? [关闭]
【发布时间】:2010-12-15 05:15:56
【问题描述】:

我讨厌验证码,你认为有没有更好的解决方案

【问题讨论】:

  • 这里已经有一些答案了:stackoverflow.com/questions/2940887/…。但是,为“我讨厌验证码”+1。
  • 我也一样:我也讨厌验证码。几周前,我不得不设置一个 gmail 帐户。我没能正确输入验证码。我尝试了音频,结果更糟。经过几次尝试,我和两个朋友成功了。

标签: php security post captcha


【解决方案1】:

数学问题越来越受欢迎

例如: 什么是 3 + 2?

这些通常比验证码更容易阅读,这可能会让某些用户感到非常困惑。

【讨论】:

  • 为什么要投反对票。这是一个有效的答案,您会看到很多网站都部署了它。你得到了我的赞成票!
  • 谢谢@Alfred,当这没有给出任何理由被否决时,我有点生气。
  • 也许是因为这种方法不是防弹的,但我认为它会阻止很多垃圾邮件!即使是验证码也不是防弹的!
  • 严格来说,这是一个验证码。说“输入这个词”和“输入这个数字”有什么区别?您可以在这里使用任何类型的常识性问题 - 随机示例,“什么动物会‘汪汪’?”甚至,“你能在这张图片中看到什么文字”......
  • 对我来说,不同之处在于数学问题更容易阅读,并且是“传统”验证码的一个很好的替代品,其中文本非常混乱并且有 1000 多个机器人旨在破解它们。随着时间的推移,这些也会变得不合适,因为随着机器人变得越来越复杂,它们会变得不那么可靠,但我认为它们目前是一个很好的解决方案。
【解决方案2】:

您可以查看Practical non-image based CAPTCHA approaches?

我之前问过一个问题Need suggestions/ideas for easy-to-use but secure captchas

但是,如果您因为验证码的存在而对用户所面临的困难感到恼火,那么对此存在很多争论,人们仍在努力想出一个通用的解决方案,即使对于非常受欢迎的网站。

您应该看到http://nedbatchelder.com/text/stopbots.html 以实现Negative captchas。但遗憾的是,据我所知,这对于特定于站点的垃圾邮件攻击(当您的站点非常受欢迎时)还没有效果。作者说他已经成功地将这些技术用于不太受欢迎的网站。最先进的否定验证码的总体结论是,无论您使用什么技术,垃圾邮件发送者都可以对他们的机器人进行编程,以便在一段时间内破解它如果他们针对您的网站。当您的网站非常受欢迎时,他们可能会瞄准您的网站。但是在您的网站不是很受欢迎之前,您绝对可以使用它们。

【讨论】:

    【解决方案3】:

    我有一个带有visibility: hidden; position: absolute 的虚假表单输入(类似zip 或机器人喜欢填写但您真的不需要的任何其他信息)。这背后的动机是获得对用户不可见但对机器人可见的输入。因此,每当您收到填写了特定输入的请求时,您就知道这不是人类。

    我使用visibility: hidden; position: absolute,这样它仍然会占用空间,但不会使设计混乱。这适用于使用更复杂的技术来检测隐藏输入的机器人,因为对于 JS,如果占用任何空间,则不会隐藏某些内容。

    到目前为止,我还没有在非常成功的网站上测试过这种技术,但它仍然值得一试。但是请注意,某些浏览器(我正在查看您的 Safari/OSX!)从您的联系人列表中获取信息并自动为您填写所有输入字段(甚至可能是您的隐藏输入),以便您更好地检查该方向的错误。

    【讨论】:

    • 蜜罐法,很好,众所周知,优秀。
    【解决方案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 时,垃圾邮件就停止了。

    这实际上并不是很多额外的数据,就像在页面中添加一些额外的图像一样。即使对于假设的拨号客户,呈现文本框和呈现提交按钮之间的延迟也比实际撰写消息可能花费的时间要短。

    【讨论】:

    • 有趣。我第一次看到这个建议。
    【解决方案5】:

    有一个不错的技巧,您可以通过将空输入 displayed none 设置给用户但对机器人可见。

    如果输入的 !=="" 为空,则为表单返回 false。

    这里还有更多 http://klauskjeldsen.dk/avoid-html-form-spam-using-css/

    【讨论】:

      【解决方案6】:

      如果你讨厌验证码,那么我可以给你两个快速的其他选择:

      • 任何类型的authentication(facebook 连接你几乎可以确定用户是值得信赖的)。
      • akismet

      【讨论】:

        猜你喜欢
        • 2011-08-01
        • 1970-01-01
        • 2014-03-08
        • 2020-05-09
        • 2020-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-11
        相关资源
        最近更新 更多