【问题标题】:reCaptcha valid if first word is correct如果第一个单词正确,则 reCaptcha 有效
【发布时间】:2013-07-23 20:31:00
【问题描述】:

我正在我的 MVC 项目中实现 reCaptcha,如下所示。

    [HttpPost]
    [ValidateAntiForgeryToken]
    [RecaptchaControlMvc.CaptchaValidatorAttribute]
    public ActionResult Index(IndexTemp indextemp, bool captchaValid)
    {
        if (!captchaValid)
        {
            ModelState.AddModelError("", "You did not type the verification word correctly. Please try again.");
        }

        if (ModelState.IsValid)
        {
            // do stuff here
        }
    }

在 Web.config 中我有以下内容。

<add key="ReCaptchaPrivateKey" value="some_key"/>
<add key="ReCaptchaPublicKey" value="another_key"/>

我从here 获得了 reCaptcha。

我注意到 reCaptcha 并不总是按预期工作(即有时它会在输入的单词无效时进行验证)。经过一番测试,我发现只要第一个单词输入正确,它就永远有效!

有什么想法吗?

【问题讨论】:

  • bit of testing 多少钱?我的猜测是你的样本数据太小了。另外,请记住功能的目的是区分人类和机器人。它不需要 100% 准确地破译文本即可有效地做到这一点。
  • 询问有关第 3 方应用程序/插件的问题,应向第 3 方提出问题。见code.google.com/p/recaptcha/issues/list
  • 对于那些在 2016 年阅读这篇文章的人 - 现在仍然是一个问题。即使一个词是正确的,Recaptcha 也会验证。

标签: asp.net-mvc recaptcha


【解决方案1】:

这个答案很有帮助:reCAPTCHA authenticates as valid even for two incorrect words

来自 reCaptcha wiki:

reCAPTCHA 由两个词组成:一个 verification 词,reCAPTCHA 服务器知道答案,一个read 词来自一本旧书。阅读的单词没有评分(因为服务器正在使用人类猜测来找出答案)。 因此,这个词可能输入错误,验证码仍然有效。每个读取的词都会发送给多人,因此错误的解决方案不会影响reCAPTCHA的输出。

在验证词上,reCAPTCHA 有意允许“减一”错误,具体取决于我们对提供解决方案的用户的信任程度。这在不影响安全性的情况下增加了用户体验。 reCAPTCHA 工程师监控此功能是否滥用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多