无私分享,discuz仅需微小改动即可防范黑客暴力刷接口
引言天降飞锅攻防阶段1:封IP攻防阶段2:关入口攻防阶段3:调整验证方式攻防阶段4:升级验证方式
引言最近处理了一起针对开源社区的攻击行为,对方疑似动用黑产势力,连续几天发动境内外的肉鸡IP发起大量注册用户请求,当然了,并不是真正的要注册用户,而是利用注册用户的动作,把短信验证码额度刷爆,最疯狂的那天刷了一万多条验证短信,真是丧心病狂。
面对这些坏蛋,我们当然不能坐以待毙,经过几次攻防交手,暂时是我们取得小胜。
本文分享这次的攻防经过,希望对其他使用Discuz系统的朋友能有所帮助。
天降飞锅某天,突然收到短信运营商告警,在一天内被刷掉一万多条短信验证码,这显然有问题,如果这些都是真实注册请求的话,那我肯定超级开心,可惜并不是。
90393攻防阶段1:封IP经过对访问日志的分析,发现短时间内有大量的境外IP请求用户注册接口,很快就把每天的短信验证码额度耗尽,导致正常的用户注册和登录请求无法使用。
对于这种情况,第一时间想到的是封禁这些IP,把它们加到路由黑洞(/sbin/ip route add blackhole $IP)中,这样做比用IPTABLE加防火墙规则效率更高,对服务器的性能损耗更小,而且不会给攻击者回包,反过来影响其效率。
不过,这些专业的黑产势力,显然是有充足的肉鸡资源,直接封IP的做法效果有限,还是无法阻止它们的攻击。
攻防阶段2:关入口黑产势力实在太猖狂,除了封IP外,暂时还没找到更好的办法,只能先避其锋芒,我惹不起还是躲得起的。因此决定暂时先关闭注册入口,以及短信验证码方式登录,只保留密码登录功能。
在Discuz管理后台关闭注册入口,如下图所示:
90394调整完后,黑产的请求量大概下降了一半,不过这招相当于是杀敌一千,自损八百,用户的有些功能受限了,不是长久之计。
攻防阶段3:调整验证方式在敌人的攻势减弱后,就有更多时间思考和尝试其他各种御敌之策了。
相对最优的解决办法是修改注册和登录方式,只允许通过微信扫码以及gitee/github等SSO单点登录方式,不过这需要额外功能开发,也就是要另外付费,先作为备选方案吧,你懂得的。
在管理后台反复查看后,就试着修改验证
- 最近查阅:
