[验证码] KgCaptcha风险监测方法

简介: “访问过于频繁,请先完成验证”,相信大家对这句话应该不陌生。当我们访问一个网站过于频繁时,就会弹出这样的提示,甚至于让我们先通过滑动验证码。

前言

访问过于频繁,请先完成验证”,相信大家对这句话应该不陌生。当我们访问一个网站过于频繁时,就会弹出这样的提示,甚至于让我们先通过滑动验证码。


开发过程

1、模拟当前为新闻列表。

1.PNG

2、前台接入KgCaptcha

<scriptsrc="captcha.js?appid=xxx"></script><scripttype="text/javascript">kg.captcha({
// 绑定弹窗按钮button: "#captchaButton",
// 验证成功事务处理success: function (e) {
// 验证成功,直接提交表单console.log(e);
document.cookie="sNum=1";
document.cookie="sTime="+Math.round(newDate().getTime()/1000);
document.getElementById('kgCaptchaToken').value=e['token']
form1.submit();
    },
// 验证失败事务处理failure: function (e) {
console.log(e);
    },
// 点击刷新按钮时触发refresh: function (e) {
console.log(e);
    }
</script><aid="captchaButton"style="display: none;">点击弹出验证窗口</a><formmethod="post"id="form1"name="form1"><inputtype="hidden"name="action"value="captcha"/><inputtype="hidden"name="kgCaptchaToken"id="kgCaptchaToken"value=""/></form>

2.PNG


3、要求

  • 通过cookie监测当前页面访问,指定时间内访问次数超出,则弹出验证码,要求用户验证。
  • 若为首次访问,弹出验证码,要求用户验证。
// 设置cookiewindow.onload=function() {
// 当前时间varcTime=Math.round(newDate().getTime()/1000)
// 当前cookie的访问次数varsNum=get_cookie2('sNum')
// 当前cookie的上一次访问时间varsTime=get_cookie2('sTime')
// 判断cookie是否设置if (sNum==undefined&&sTime==undefined) {
document.getElementById('captchaButton').click()
    } else {
// 判断访问次数和上一次访问时间if (parseInt(sTime)+10<=cTime&&sNum>9) { 
document.getElementById('captchaButton').click()
        } else {
if (cTime-sTime<10) {
document.cookie="sNum="+(parseInt(sNum)+1);
document.cookie="sTime="+sTime;
            } else {
document.cookie="sNum=1";
document.cookie="sTime="+cTime; 
            }
        }
    }
}
// 获取cookie的方法functionget_cookie2(val) {
vararr=document.cookie.split(';');
for(vari=0; i<arr.length; i++){
vararr2=arr[i].split('=');
arr2[0] =arr2[0].replace(/\s*/g,"");
if(arr2[0] ==val){
returnarr2[1]
        } 
    }
}


4、后端验证

<?phpheader("Content-type:text/html;charset=utf-8");
// 后端验证if (isset($_POST) &&$_POST['action'] =='captcha') {
include"./KgCaptchaSDK.php";
// 填写你的 AppId,在应用管理中获取$appId="xxx";
// 填写你的 AppSecret,在应用管理中获取$appSecret="xxx";
$request=newkgCaptcha($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"<script>alert('验证通过');</script>";
header('location: demo.php');
    } else {
// 验签失败逻辑处理echo"<script>alert('验证失败,错误代码:{$requestResult->code}, 错误信息:{$requestResult->msg}');</script>";
header('location: demo.php');
    }
}
?>


最后

SDK开源地址:KgCaptcha (KgCaptcha) · GitHub,顺便做了一个演示:凯格行为验证码在线体验

相关文章
|
机器学习/深度学习 人工智能 Java
验证码破解全流程实战
验证码破解全流程实战
418 0
验证码破解全流程实战
|
1月前
|
数据采集 监控 安全
阿里云短信服务+图形认证,有效降低验证码盗刷概率
阿里云短信服务+图形认证服务,有效降低验证码盗刷概率。
166 3
阿里云短信服务+图形认证,有效降低验证码盗刷概率
|
5月前
|
安全 数据安全/隐私保护
如何设置多因素认证,但不使用短信验证码?
【5月更文挑战第14天】如何设置多因素认证,但不使用短信验证码?
73 0
|
5月前
|
数据安全/隐私保护 开发者
关于小游戏用户隐私保护违规警告的处理方案
关于小游戏用户隐私保护违规警告的处理方案
71 0
|
安全 前端开发 程序员
逻辑漏洞中一些自己总结关于验证码的漏洞挖掘
逻辑漏洞中一些自己总结关于验证码的漏洞挖掘
481 0
|
安全 开发工具
KgCaptcha 行为验证码安全策略设置
在验证码项目中,都会遇到验证码被恶意大量高频的调用,给服务造成很多无效的注册或登录,占用大量的系统资源。
KgCaptcha 行为验证码安全策略设置
|
机器学习/深度学习 算法 大数据
如何通过空号检测,验证电话号码数据的准确性
空号检测接口通过结合数据查询和验证算法,为企业和个人提供了一种有效的方式来确定电话号码的有效性。它在营销、客户服务、身份验证和运营商等方面发挥着重要作用,提高了资源利用效率、用户体验和数据准确性。随着通信技术的发展,空号检测接口将继续发挥更大的作用,帮助解决电话号码有效性的挑战
455 0
|
API 数据库
企业为何要定期进行空号检测
对于有些营销为主的企业来说,客户资源更多体现在客户的手机号,企业需要触达用户并转化为商机,在庞大的客户手机号码中难免会有各类无效号码的存在,在进行触达之前如果没有把这些号码筛选出来的话,会浪费更多的成本,因此需要定期通过空号检测接口对其进行筛选。
146 0
企业为何要定期进行空号检测
|
开发工具
KgCaptcha 语序识别验证码请求日志记录
请求日志记录是一个非常普遍的功能,几乎可以涉及到所有的项目。所以一个方便使用的日志记录,将会方便日后的管理,于是我通过使用 KgCaptcha 在我的验证码项目中实现。
KgCaptcha 语序识别验证码请求日志记录
KgCaptcha 行为验证码自定义语言/预警信息设置
KgCaptcha 行为验证码自定义语言/预警信息设置
KgCaptcha 行为验证码自定义语言/预警信息设置