开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 390|回复: 0
收起左侧

[JS例程分享] 行为验证码安全策略设置

[复制链接]
发表于 2023-3-10 16:38:30 | 显示全部楼层 |阅读模式   广东省中山市
本帖最后由 norhone 于 2023-3-10 16:40 编辑

前言
在验证码项目中,都会遇到验证码被恶意大量高频的调用,给服务造成很多无效的注册或登录,占用大量的系统资源。
而我在想,有没有哪一款验证码产品可以设置黑/白名单限制IP访问和设置风控异常呢?答案是:有,大海茫茫中让我找到了 KgCaptcha,接下来我就给大家讲讲怎么设置吧!

无感验证
开启:当用户通过验证后,再次访问时,无需验证,直接通过。
关闭:用户每次都需手动验证。
1.png

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

部分代码片段
[Python] 纯文本查看 复制代码
def sense_verify(self):
    """ 检测当前用户是否为无感免验证用户 """

    # 当前应用是否开启无感验证功能
    if self.auth.data["sense"] != 1: return 0, self.auth.lang[0]

    # 支持客户端调时关闭无感验证:$_GET["sence"] = 1 关闭、默认为 0 即开启 <script src="captcha.js?&sence=1"></script>
    if self.kg["GET"].get("sence", "ON") == "OFF": return 40004, self.auth.lang[40004]

    # 客户端环境是否支持无感验证,无法获取/写入客户端 COOKIE
    if len(str(self.auth.cid)) != 32 or not self.auth.ip: return 40000, self.auth.lang[40000]
    
    ....

IP限制(黑/白名单)
黑名单模式:禁止以下IP访问
白名单模式:只允许以下IP访问
通过选择黑/白名单,填写IP列表来限制指定IP访问验证码。
3.png

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

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

部分代码片段
[Python] 纯文本查看 复制代码
# 客户端IP检测
    ip_list = self.auth.ip_list()
    if ip_list == 1: message = "%s : %s" % (self.auth.lang[40010], self.kg["HTTP_ADDR"])
    if ip_list == 2: message = "%s : %s" % (self.auth.lang[40011], self.kg["HTTP_ADDR"])

# 服务器黑名单检测
if self.auth.client_blacklist():
    message = self.auth.lang[40020]  # 服务器黑名单

风控异常设置
一级:适用于开发调试及对安全要求一般的应用
二级:标准模式,适用于大部分应用
三级:适用于对安全要求极高的应用
6.png

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

部分代码片段
[Python] 纯文本查看 复制代码
# 请求次数限制检测
excess = self.auth.excess(0)
if excess:
    message = {1: self.auth.lang[40012], 2: self.auth.lang[40013], 3: self.auth.lang[40014]}[excess]

# 风险检测,在 x 分钟内出错记录超过 n 次则拒绝
if self.auth.data["level"] > 0:  # self.auth.cid
    # if not self.auth.cid: message = self.auth.lang[40007]  # 无 COOKIE ID
if not self.auth.risk():
    message = self.auth.lang[40006]  #

相关链接
SDK开源地址:https://github.com/KgCaptcha,顺便做了一个演示:https://www.kgcaptcha.com/demo/




您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表