[验证码] 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,顺便做了一个演示:凯格行为验证码在线体验

相关文章
|
8月前
|
数据采集 机器学习/深度学习 安全
Python爬虫之极验滑动验证码的识别
了解极验滑动验证码、特点、识别思路、初始化、模拟点击、识别缺口、模拟拖动。
456 0
|
安全 机器人 网络安全
安全防线加固,文字点选验证码来帮忙
为了确保网络安全,我们网站采用了文字点选验证码来验证用户身份。文字点选验证码是一种简单而有效的验证机制,通过要求用户点击相关图像来区分真实用户和机器人。它不仅可以防止恶意攻击,还能提供用户友好的验证体验。
|
存储 前端开发 NoSQL
TienChin 验证码响应结果分析&验证码生成接口分析
首先从前端开始进行分析,进入到登录页面,打开开发者工具(f12),找到 network,f5 刷新一下页面,然后,筛选一下,筛选内容为 Fetch/XHR:
97 0
TienChin 验证码响应结果分析&验证码生成接口分析
|
JavaScript API 容器
手机短信验证码登录功能的开发实录(机器识别码、短信限流、错误提示、发送验证码倒计时60秒)
手机短信验证码登录功能的开发实录(机器识别码、短信限流、错误提示、发送验证码倒计时60秒)
313 1
|
安全 开发工具 UED
告别验证码烦恼,轻松完成文字点选验证
文字点选验证码,作为一种创新的验证方式,正在逐渐取代传统的输入文字或数字的验证方式,为用户带来了更简单、直观的验证体验。它通过点击包含特定文字或物体的图片来完成验证,摆脱了繁琐的输入过程,让用户告别验证码的烦恼。
|
缓存 JavaScript 数据安全/隐私保护
Crack Captcha | 某招投标信息查询网站滑块验证码分析
Crack Captcha | 某招投标信息查询网站滑块验证码分析
119 0
|
安全 前端开发 程序员
逻辑漏洞中一些自己总结关于验证码的漏洞挖掘
逻辑漏洞中一些自己总结关于验证码的漏洞挖掘
522 0
|
安全 开发工具
KgCaptcha 行为验证码安全策略设置
在验证码项目中,都会遇到验证码被恶意大量高频的调用,给服务造成很多无效的注册或登录,占用大量的系统资源。
KgCaptcha 行为验证码安全策略设置
|
机器学习/深度学习 算法 大数据
如何通过空号检测,验证电话号码数据的准确性
空号检测接口通过结合数据查询和验证算法,为企业和个人提供了一种有效的方式来确定电话号码的有效性。它在营销、客户服务、身份验证和运营商等方面发挥着重要作用,提高了资源利用效率、用户体验和数据准确性。随着通信技术的发展,空号检测接口将继续发挥更大的作用,帮助解决电话号码有效性的挑战
544 0
|
数据采集 机器人 开发工具
使用验证码拦截爬虫和机器人实践分享
在很多时候我们都会遇到验证码的多种场景,不同的产品也会使用不同的登录验证方式。 在项目开发中,我将KgCaptcha应用到搜索和分页中,下面是我写的的记录。
使用验证码拦截爬虫和机器人实践分享

热门文章

最新文章