Recaptcha 客户端验证的理想解决方案
本文关键字:理想 解决方案 验证 客户端 Recaptcha | 更新日期: 2023-09-27 17:56:15
Recaptcha:我想将recaptcha用于基于jQuery和 ASP.net 构建的网站的登录页面。在发布这个问题之前,我用谷歌搜索了有关验证码的信息并研究了一下......将 recaptcha 与 ASP.NET 一起使用,它正在执行服务器端验证,我需要包含 reCaptcha 的 DLL 并将其用作服务器控件,然后使用页面的 isValid 属性对其进行验证。
我想要的是使用 jquery 对 recaptcha 进行客户端验证,我应该怎么做?
有没有好的教程来做到这一点或理想的解决方案?
你不能在客户端这样做。没有服务器的帮助,您无法做到这一点,因为 recaptcha 归 google 所有(它不是您的域),但您无法直接请求验证它。
由于安全原因,禁止跨域XMLHttpRequests。您也可以在填写验证码(recaptcha_response_field
的onblur
)时对服务器进行 AJAX 调用并对其进行验证。
为什么要在客户端处理验证码?可能会在表单提交函数中挂接一些东西,如下所示:
$("#form1").submit(function(){
// other validation
if(reCaptchaValidated()==false){
return false;
}
});
你能阻止某人这样做吗:
$('#form1').unbind("submit").submit();
的解决方案
添加对谷歌 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>
网页条目
<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;
}
希望这有帮助
查看QapTcha:带有jQuery和jQuery UI或AJAX FANCY CAPTCHA 的jQuery captcha系统 - jquery插件
以前用过它,它对我很有用..
如果您展示您已经拥有的内容可能会有所帮助,但我确实发现这可能与您正在寻找的东西一样。
使用客户端调用验证验证码
我建议使用谷歌的reCaptcha(是的,它是服务器端),因为客户端可以随时打开客户端验证码。
但无论如何,这里有8个使用jQuery的Cpatchas,包括教程。
8 jQuery CAPTCHA插件与教程
希望对:)有所帮助