前言
在验证码项目中,都会遇到验证码被恶意大量高频的调用,给服务造成很多无效的注册或登录,占用大量的系统资源。
而我在想,有没有哪一款验证码产品可以设置黑/白名单限制IP访问和设置风控异常呢?答案是:有,大海茫茫中让我找到了 KgCaptcha,接下来我就给大家讲讲怎么设置吧!
无感验证
开启:当用户通过验证后,再次访问时,无需验证,直接通过。
关闭:用户每次都需手动验证。
当无感验证开启,验证码显示如下:
部分代码片段
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访问验证码。
当访问者IP在黑名单列表里,验证码显示如下:
相反,当访问者IP在白名单列表里,验证码正常显示:
部分代码片段
# 客户端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] # 服务器黑名单
风控异常设置
一级:适用于开发调试及对安全要求一般的应用
二级:标准模式,适用于大部分应用
三级:适用于对安全要求极高的应用
当指定分钟内错误记录达到指定次数时,触发风险异常提示:
部分代码片段
# 请求次数限制检测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
在线体验:凯格行为验证码在线体验
开发文档:凯格行为验证码-开发文档