0

我在我的 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"/>

我从这里得到了 reCaptcha 。

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

有任何想法吗?

4

1 回答 1

2

这个答案很有帮助:即使对于两个不正确的单词,reCAPTCHA 也可以验证为有效

来自 reCaptcha 维基:

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

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

于 2013-07-23T20:42:02.740 回答