reCAPTCHA3 配置技术
如果需要阻止墙内IP访问,reCAPTCHA 是个不错的选择。
下面整理了 reCHATCHA3 的使用方法,reCAPTCHA3 因其高超的技艺,已经无需点击识别图片来判断是否是真人了。
我想,它应该是穷举了真实浏览器的所有 API 来检测是否真机真人,因为假的就是假的,总是有点不一样。
直接上干货:
reCAPTCHA icon 大功告成 - 已完置完毕! checkmark 管理 Google Cloud 项目设置 checkmark 每月可免费提供多达 10,000 次评估 若要启用高级功能,请访问托管您 reCAPTCHA 密钥的 Google Cloud Platform 项目。 在您的网站提供给用户的 HTML 代码中使用此网站密钥。 6*************************************** 此密钥用于您的网站和 reCAPTCHA 之间的通信。 6***************************************
就是这样子,开通了之后两个密钥。
这个在开发环境上,是不好测试的,因为域不同,其实也无需测试,用了人家的东西,就得受的起。
<script src="https://www.google.com/recaptcha/api.js?render=6***************************************">
阻挡的页面啥也不需要,只需加在上面的即可。然后绑定事件:
click(function(e){
e.preventDefault();
grecaptcha.ready(function() {
grecaptcha.execute("6***************************************",{action:"submit"}).then(function(token) {
ajax({
"method":"POST",
"url":"",
"data":{"a":"recaptcha","token":token},
"dataType":"json",
"beforeSend": function(xhr){xhr.setRequestHeader("token","");},
"success":function(rsObj, statusStr, ResponseObj){
},
"error":function(objRequest, statusStr, statusText){},
"complete":function(){setTimeout(function(){},6e3)}
});
});
});
});
server:
$token = arr_get($_POST, 'token');
$response = curl_p('https://www.google.com/recaptcha/api/siteverify', ['secret'=>'6***************************************', 'response'=>$token], [params]);
response 样例:
{
"success": true,
"challenge_ts": "2000-00-00T00:50:27Z",
"hostname": "xxx.com",
"score": 0.9,
"action": "submit"
}
大功告成!
暂无