前言在验证码项目中,会存在大量恶意频繁调用验证码的情况,会造成大量无效注册或登录服务,占用大量系统资源资源。而且我在想,有没有什么验证码产品可以设置黑白名单,限制IP访问,设置风控例外?答案是:是的,我在茫茫大海中找到了KgCaptcha,接下来我会告诉你如何设置!开启无感验证:当用户验证通过,再次访问时,无需验证,用户直接通过。关闭:用户每次都需要手动验证。启用无感验证时,验证码显示如下:部分代码片段defsense_verify(self):"""检测当前用户是否为无感免验证用户"""#当前应用是否启用self.auth的无意义验证功能。data["sense"]!=1:return0,self.auth.lang[0]#支持客户端调优关闭无意义认证:$_GET["sence"]=1off,default0meanson如果self.kg["GET"].get("sence","ON")=="OFF":返回40004,self.auth.lang[40004]#客户端环境是否支持无感认证,无法获取/写入客户端COOKIEiflen(str(self.auth.cid))!=32ornotself.auth.ip:return40000,self.auth.lang[40000]....IP限制(黑/白名单)黑名单模式:禁止以下IP访问白名单模式:只允许以下IP访问通过选择黑/白名单并填写IP列表来限制指定IP访问验证码。当访客IP在黑名单时,验证码显示如下:反之,当访客IP在白名单时,验证码正常显示:部分代码片段#ClientIPdetectionip_list=self.auth.ip_list()如果ip_list==1:message="%s:%s"%(self.auth.lang[40010],self.kg["HTTP_ADDR"])如果ip_list==2:message="%s:%s"%(self.auth.lang[40011],self.kg["HTTP_ADDR"])#服务器黑名单检测ifself.auth.client_blacklist():message=self.auth.lang[40020]#Server黑名单风控异常设置级别一:适合开发调试和安全要求一般的应用级别二:标准模式,适合大部分应用三级:适合安全要求极高的应用当错误记录达到指定次数时在指定分钟内,触发Risk异常提示:一些代码片段#请求限额检测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次,self.auth.data["level"]>0:#self.auth.cid#ifnotself.auth.cid:message=self.auth.lang[40007]#NoCOOKIEIDifnotself.auth.risk():message=self.auth.lang[40006]#相关链接SDK开源地址:https://github.com/KgCaptcha,顺便做了一个demo:https://www.kgcaptcha.com/demo/
