Recaptcha Идеальное решение для проверки на стороне клиента - PullRequest
1 голос
/ 13 мая 2011

Recaptcha: Я хочу использовать recaptcha для страницы входа в мой сайт, который построен на jQuery и ASP.net. Перед публикацией этого вопроса я погуглил о recaptcha и изучил об этом ... используйте recaptcha с ASP.NET, который выполнял проверку на стороне сервера, где мне нужно было включить dll для reCaptcha и использовать его в качестве серверного элемента управления, а затем проверить его с помощью свойства isValid страницы.

Что я хочу, это проверка на стороне клиента для recaptcha с использованием jquery, как мне это сделать?

Есть ли хороший учебник для этого или идеальное решение?

Ответы [ 6 ]

3 голосов
/ 13 мая 2011

Вы не можете сделать это на стороне клиента. Вы не можете сделать это без помощи вашего сервера, так как recaptcha принадлежит Google (это не ваш домен), однако вы не можете напрямую сделать запрос на подтверждение этого.

Из соображений безопасности запрещен кросс-домен XMLHttpRequests. В качестве альтернативы вы можете сделать AJAX-вызов на ваш сервер, когда рекапча заполнена (onblur из recaptcha_response_field), и подтвердить его.

2 голосов
/ 13 мая 2011

С какой стати вы хотите обрабатывать капчу на стороне клиента?Возможно, вы подключите что-то внутри функции отправки формы, например:

$("#form1").submit(function(){
    // other validation
    if(reCaptchaValidated()==false){
        return false;
    }
});

Можете ли вы помешать кому-либо сделать это:

$('#form1').unbind("submit").submit();
1 голос
/ 03 апреля 2014

Вот мое решение

Добавьте ссылку на gap ajax recapcha и создайте капчу.

<script src="http://www.google.com/recaptcha/api/js/recaptcha_ajax.js" ></script>

<script type="text/javascript">
  function showRecaptcha() {
     Recaptcha.create("6LfLrusSAAAAAIoi3XkbGvm2fLao3VjsNTjRoK-K", 'captchadiv', {
                            tabindex: 1,
                            theme: "white",
                            callback: Recaptcha.focus_response_field
     });
  }
  window.onload = function () { showRecaptcha(); }
</script>

HTML-запись

<form id="myform">
   <div id="captchadiv">
    </div>
 <input type="submit" value="Submit" />
</form>

Создание вызова Javascript

<script type="text/javascript">
$('myform').submit(function() {

     $.getJSON("someurl/api/ValidateRecapcha", param).done(function (ret) {
                   if(ret) alert('recacha matched');
                   else alert('mismatched');
     })
})
</script>

Я использую ASP.net Webapi для сервиса и скачал Recaptcha.dll отсюда. https://developers.google.com/recaptcha/docs/aspnet

[HttpGet]
public bool ValidateRecapcha(string challengetKey, string input)
{
   var r = new Recaptcha.RecaptchaValidator();
   r.PrivateKey = "Recapcha Private Key"
   r.Challenge = challengetKey;
   r.Response = input;
   r.RemoteIP = "REMOTE_ADDR".ToServerVariables();
   var response = r.Validate();
   return response.IsValid;
}

Надеюсь, это поможет

0 голосов
/ 13 мая 2011

Я рекомендую использовать Google ReCaptcha (да, это на стороне сервера), потому что клиент всегда может включить клиентскую капчу.

Но в любом случае, здесь 8 Cpatch, использующих jQuery, включая учебные пособия.

8 jQuery CAPTCHA Плагин с учебником

Надеюсь, это поможет:)

0 голосов
/ 13 мая 2011

Может помочь, если вы покажете, что у вас уже есть, но я обнаружил, что это может быть чем-то вроде того, что вы ищете.

Проверка Recaptcha с помощью клиентского вызова

0 голосов
/ 13 мая 2011

Check QapTcha: система jQuery captcha с jQuery & jQuery UI или AJAX FANCY CAPTCHA - JQUERY PLUGIN

Использовал его раньше, и он отлично работал для меня ..

...