Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

reCaptcha and SSL web site

I using a reCaptcha on my web page under asp.net mvc. This web site have a SSL certificated, and I having and problem with reCaptcha. This is my code on View:

<script type="text/javascript" src="https://api-secure.recaptcha.net/challenge?k=***Public key****"> </script>
<noscript>
<iframe src="https://api-secure.recaptcha.net/noscript?k=***Public key****" height="300" width="500" frameborder="0"></iframe><br />
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
<input type="hidden" name="recaptcha_response_field" value="manual_challenge" />
</noscript>

and this code is that I have on AccountController:

private bool PerformRecaptcha()
{
    var validator = new RecaptchaValidator
    {
        PrivateKey = "**Private Key***", 
        RemoteIP = Request.UserHostAddress,
        Response = Request.Form["recaptcha_response_field"],
        Challenge = Request.Form["recaptcha_challenge_field"]

    };

    try
    {
        var validationResult = validator.Validate();

        if (validationResult.ErrorMessage == "incorrect-captcha-sol")
            ModelState.AddModelError("ReCaptcha", string.Format("Please retry the ReCaptcha portion again."));

        return validationResult.IsValid;
    }
    catch (Exception e)
    {
        ModelState.AddModelError("ReCaptcha", "an error occured with ReCaptcha please consult documentation.");
        return false;
    }
}

and my library version is 1.0.5.0.

When I load the register form I have this alert on Opera:

The rules server certificate matches the server name. Do you want to accept?

If I accept this certificate, displays reCaptcha code, but if not, I don't view reCaptcha Code.

Can you help me with this? If you need more information about my code, feel free to ask to me.

Regards.

like image 990
Pipeline Avatar asked Dec 16 '22 14:12

Pipeline


1 Answers

I think you need to change the url you are using to include recaptcha. A number of people had the same problem in April. Recaptcha let the certificate expire for "api-secure.recaptcha.net". If you change it to use the "https://www.google.com/recaptcha/api/XXX" url instead of "https://api-secure.recaptcha.net/XXX", it should definitely fix your issue.

It looks like this one has actually been answered before: recaptcha https problem on https://api-secure.recaptcha.net/. Since you are using the .NET library, I think your answer is to upgrade your version.

like image 177
JasonStoltz Avatar answered Dec 30 '22 07:12

JasonStoltz