代码之家  ›  专栏  ›  技术社区  ›  berkay

如果验证码不安全,可以使用什么替代?

  •  10
  • berkay  · 技术社区  · 16 年前

    据我所知 here

    10 回复  |  直到 9 年前
        1
  •  7
  •   Marcelo Cantos    16 年前

    这是一个尚未解决的问题,随着时间的推移,这个问题将变得越来越难以解决。OCR工具做得越好,人与计算机之间的差距就越小,也就越难区分它们。最终,计算机将无法与人类区分开来,然后游戏将开始。

    如果您的服务器想要确保一个人在TCP管道的另一端,那么就没有一个图灵测试不会最终失败(而且可能永远不会有)。验证码是注定的,只是多久的问题。

    当然,这并不意味着就人类身份验证而言,一切都结束了。这仅仅意味着自动化的图灵测试,尽管很方便,但在很长时间内都不会是实现这一目标的有效方法。

        2
  •  6
  •   Boris Guéry    16 年前
    • 涉及人类反射的验证码(比如计算,非常简单的问题等等)。
    • Session tokens
    • 随机生成的隐藏输入要求为空,在服务器端生成一个随机标识符,在会话中保留一段时间。如果输入已填充且不为空,则它可能已由机器人填充,您的用户是否将填充隐藏的输入?

        3
  •  5
  •   Dónal    16 年前

    随机生成的需要为空的隐藏输入

    其思想是表单包含几个不可见的输入,它们的类型可能不应设置为hidden,但它们应该对人不可见(例如,将width或height设置为0)。这些字段的初始内容应为空。如果一个人填写了表单,那么这个字段将是空的,因为这个人看不到这个字段以便在其中输入任何内容,但是如果一个机器人填写了表单,那么这个字段将(可能)不是空的,因为机器人通常只是盲目地在每个字段中输入一些内容。

    因此,您可以根据此字段的内容是否为空来区分机器人和人类。

        4
  •  1
  •   rook    16 年前

    虽然CAPTCHA可以被破坏, reCapthca 非常 Tesseract 打破它的成功将非常有限。然而,有些服装 Human Computation 密码学可以用暴力破解。 所有的密码散列都是可破解的,但我们仍然使用它们,因为这使攻击者更难破解。

    此线程上的大多数“解决方案”是“ Security Though Obscurity

        5
  •  0
  •   Evert    16 年前

    验证码是用来确定一个真正的人在做请求,而不是一台机器。验证码和类似验证码的系统将会升级,破解它们的技术也会升级。

    那你怎么证明你是在和人说话而不是电脑呢?例如,您可以要求用户参与聊天会话并进行小型对话。现在没有通过图灵测试的人工智能。

    所以答案是,没有一个系统是完美的。不要试图解决这个问题,但要设法减少它的影响。

        6
  •  0
  •   Christian    16 年前

    从长远来看,政府可以运行openid服务器作为公民的数字护照。 这将是一个干净的方式,以确定人类和防止套袋。

        7
  •  0
  •   Earlz    16 年前

    • 二对一的幂是多少?
    • 什么是2+2(但这一个被黑客入侵了,所以不要使用它)
    • 这个网站域名是什么?
    • 二加二的和是多少?

    其他一些不错的可能是

    • 在此框中键入“stuff”作为垃圾邮件检查
    • 1337是什么样子的((仅使用字母)
    • 当前年份是?
        8
  •  0
  •   hasen    16 年前

    我能想到的最好的方法是使用一些非常规的东西,比如一个特殊的隐藏字段,它应该是null(或者另一个特定的值),机器人会处理它。

    如果某个机器人制造商为你的站点调整了他的机器人,你就必须快速地将验证码改成不同的内容。这将(希望)需要一段时间之前,另一个机器人制造商调整他的机器人为您的网站。

    基本上,这是一个通过默默无闻的安全,必须不断改变,以保持默默无闻。

        9
  •  0
  •   h0mayun    12 年前

    这只是一个想法,我用在我的应用程序,效果很好

    您可以使用javascript或jquery在鼠标移动时创建cookie,并在服务器端检查cookie是否存在,因为只有人类有鼠标,所以cookie只能由他们创建 cookie可以是时间戳,也可以是可验证的令牌

        10
  •  0
  •   Thomas Zhang    11 年前

    获取鼠标的坐标,判断坐标是否有变化,可以判断它是否是机器人。