KgCaptcha 行为验证码安全策略设置

简介: 在验证码项目中,都会遇到验证码被恶意大量高频的调用,给服务造成很多无效的注册或登录,占用大量的系统资源。

前言

在验证码项目中,都会遇到验证码被恶意大量高频的调用,给服务造成很多无效的注册或登录,占用大量的系统资源。

而我在想,有没有哪一款验证码产品可以设置黑/白名单限制IP访问设置风控异常呢?答案是:有,大海茫茫中让我找到了 KgCaptcha,接下来我就给大家讲讲怎么设置吧!


无感验证

开启:当用户通过验证后,再次访问时,无需验证,直接通过。

关闭:用户每次都需手动验证。

3.png

当无感验证开启,验证码显示如下:

4.png

部分代码片段

defsense_verify(self):
""" 检测当前用户是否为无感免验证用户 """# 当前应用是否开启无感验证功能ifself.auth.data["sense"] !=1: return0, self.auth.lang[0]
# 支持客户端调时关闭无感验证:$_GET["sence"] = 1 关闭、默认为 0 即开启 <script src="captcha.js?&sence=1"></script>ifself.kg["GET"].get("sence", "ON") =="OFF": return40004, self.auth.lang[40004]
# 客户端环境是否支持无感验证,无法获取/写入客户端 COOKIEiflen(str(self.auth.cid)) !=32ornotself.auth.ip: return40000, self.auth.lang[40000]
    ....


IP限制(黑/白名单)

黑名单模式:禁止以下IP访问

白名单模式:只允许以下IP访问

通过选择黑/白名单,填写IP列表来限制指定IP访问验证码。

6.png

当访问者IP在黑名单列表里,验证码显示如下:

7.PNG

相反,当访问者IP在白名单列表里,验证码正常显示:

10.PNG

部分代码片段

# 客户端IP检测ip_list=self.auth.ip_list()
ifip_list==1: message="%s : %s"% (self.auth.lang[40010], self.kg["HTTP_ADDR"])
ifip_list==2: message="%s : %s"% (self.auth.lang[40011], self.kg["HTTP_ADDR"])
# 服务器黑名单检测ifself.auth.client_blacklist():
message=self.auth.lang[40020]  # 服务器黑名单


风控异常设置

一级:适用于开发调试及对安全要求一般的应用

二级:标准模式,适用于大部分应用

三级:适用于对安全要求极高的应用

12.png

当指定分钟内错误记录达到指定次数时,触发风险异常提示:

13.PNG

部分代码片段

# 请求次数限制检测excess=self.auth.excess(0)
ifexcess:
message= {1: self.auth.lang[40012], 2: self.auth.lang[40013], 3: self.auth.lang[40014]}[excess]
# 风险检测,在 x 分钟内出错记录超过 n 次则拒绝ifself.auth.data["level"] >0:  # self.auth.cid# if not self.auth.cid: message = self.auth.lang[40007]  # 无 COOKIE IDifnotself.auth.risk():
message=self.auth.lang[40006]  #


相关链接

SDK下载:KgCaptcha (KgCaptcha) · GitHub

在线体验:凯格行为验证码在线体验

开发文档:凯格行为验证码-开发文档

相关文章
|
SQL Java 数据库连接
Mybatis之discriminator(鉴别器)详解
前言 最近干了一个工作是使用discriminator去写一个新的API,那么写这个新的API原因是什么呢?原因是这样的:我们的项目使用Mybatis,我们项目中有一个实体类叫做User,在User中还含有很多别的实体类,例如Role,Permission,Address等(有经验的肯定知道这种嵌套实体类的情况,使用和)。
4323 0
|
存储 消息中间件 Java
SpringBoot整合RocketMQ发送延时消息
当消息写入到Broker后,在指定的时长后才可被消费处理的消息,称为延时消息
1380 0
|
9月前
|
Dart 前端开发 容器
【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
249 18
【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
11月前
|
存储 运维 Linux
Linux防火墙firewall的使用
CentOS 7 中的 firewalld 是基于 Netfilter 的防火墙服务,支持动态配置,无需重启服务即可生效。它通过区域管理网络流量,每个区域可以设置不同的防火墙规则。默认区域为 public,可以通过命令行工具 firewall-cmd 进行管理和配置。firewalld 提供了丰富的预定义服务和区域,方便用户根据需求进行灵活配置。
193 0
|
自然语言处理 数据处理
情感分析的终极形态:全景式细粒度多模态对话情感分析基准PanoSent
【9月更文挑战第24天】PanoSent是一种全新的多模态对话情感分析框架,旨在全景式地提取和分析情感元素,包括情感六元组提取与情感翻转分析两大任务。此框架依托大规模、高质量的多模态数据集PanoSent,涵盖文本、图像、音频等多种模态及多种语言,适应不同应用场景。为解决这些任务,研究人员提出了Chain-of-Sentiment推理框架,结合多模态大语言模型Sentica,实现细粒度的情感分析。尽管PanoSent在情感分析任务上表现优异,但仍面临多模态数据处理和跨领域适用性的挑战。
346 2
|
开发工具 Android开发 图形学
【2015~2024】大牛直播SDK演化史
大牛直播SDK始创于2015年,旨在提供低延迟的RTMP推拉流解决方案,特别适用于毫秒级延迟的应用场景。初始版本针对Android平台实现RTMP直播推送,随后扩展至Windows、iOS和Linux平台,支持RTMP与RTSP播放器,延迟稳定在一秒以内。SDK涵盖实时推流、播放、GB28181设备接入、录像、多路流媒体转发、轻量级RTSP服务等多种功能,并支持H.265编码格式。该SDK适用于在线教育、智慧安防等多个行业场景,并已发展成为GitHub上获得超过10000星标的强大跨平台流媒体内核直播SDK。
599 1
|
存储 前端开发 JavaScript
|
网络协议 程序员 网络架构
数据封装与解封装过程
数据封装与解封装过程
526 0
|
监控 API C语言
【Python 基础教程 22】全面揭秘Python3 os模块:从入门到高级的实用教程指南
【Python 基础教程 22】全面揭秘Python3 os模块:从入门到高级的实用教程指南
487 1
计算机网络:编码与调制
计算机网络:编码与调制
311 0