共计 1635 个字符,预计需要花费 5 分钟才能阅读完成。
结尾的话
对于验证码,大家兴许会有很多疑难,上面我总结了一些常见问题。
什么是验证码?
验证码(CAPTCHA)全称为:Completely Automated Public Turing test to tell Computers and Humans Apart,全自动辨别计算机和人类的图灵测试,是一种辨别用户是计算机还是人的公共全自动程序。
验证码有什么作用?
联合咱们的日常生活,咱们发现验证码通常呈现在登录、注册、领优惠券、购买游戏配备、购票、发帖等场景。验证码无效避免这种问题对某一个特定注册用户用特定程序暴力破解形式进行一直的登陆尝试,验证码很大水平上是用来判断操作是人为还是机器人。
行为验证码的原理是什么?
针对用户产生的行为轨迹数据进行机器学习建模,联合拜访频率、地理位置、历史记录等多个维度信息,疾速、精确的返回人机断定后果,故而机器辨认 + 模仿则不易通过。
验证码的类型都有哪些?
1、数字、字母、中文组合:以图片的模式展现字母、数字、中文混合组合,此类验证码个别由 4 位组成。
2、短信验证码:比拟常见的验证码类型,用户填好手机号码,单击获取验证码后,手机上就能收到短信验证码。
3、行为验证码:智能无感、滑动拼图、文字点选、语序点选、字体辨认、空间推理等。
怎么避免歹意刷短信验证?
歹意短信验证,属于短信轰炸的一种,用户端体现为高频收到验证短信内容,用户体验差。对公司来讲,大量的歹意短信验证,减少公司经营老本,领取额定的短信经营费用。
避免这种歹意行为,形式之一是能够减少验证码校验。发送短信验证码时,可要求通过验证码。同时在验证码申请谬误时,要重置验证码,避免图片验证码辨认软件尝试屡次辨认。
前端代码:
<script src="captcha.js?appid=xxx"></script>
<script>
kg.captcha({
// 绑定弹窗按钮
button: "#captchaButton",
// 验证胜利事务处理
success: function (e) {
// 验证胜利,间接提交表单
// form1.submit();
console.log(e);
},
// 验证失败事务处理
failure: function (e) {console.log(e);
},
// 点击刷新按钮时触发
refresh: function (e) {console.log(e);
}
});
</script>
<a id="captchaButton"> 点击弹出验证窗口 </a>
后端代码:
<?php
include "public/KgCaptchaSDK.php";
// 填写你的 AppId,在利用治理中获取
$appId = "xxx";
// 填写你的 AppSecret,在利用治理中获取
$appSecret = "xxx";
$request = new kgCaptcha($appId, $appSecret);
// 填写应用服务域名,在利用治理中获取
$request->appCdn = "https://cdn.kgcaptcha.com";
// 前端验证胜利后颁发的 token,有效期为两分钟
$request->token = $_POST["kgCaptchaToken"];
// 当安全策略中的防控等级为 3 时必须填写
$request->userId = "kgCaptchaDemo";
// 申请超时工夫,秒
$request->connectTimeout = 10;
$requestResult = $request->sendRequest();
if ($requestResult->code === 0) {
// 验签胜利逻辑解决
echo "验证通过";
} else {
// 验签失败逻辑解决
echo "验证失败,错误代码:{$requestResult->code},错误信息:{$requestResult->msg}";
}
最初
SDK 开源地址:https://github.com/KgCaptcha,顺便做了一个演示:https://www.kgcaptcha.com/demo/