1.增设图文验证码
2.IP标记
在redis数据库db0中新建一个名为rd_sms_request_count表,表结构:
Ip:客户请求的ip
Success_count:成功次数
Failure_count:失败次数
Is_close:是否已经加入到防火墙黑名单,1是 0否 ,默认0。
结合业务,判单哪个ip是恶意的,每当一个ip访问接口,按照代码返回码,如果是都是错误请求,添加到redis数据库中的Failure_count字段加1,如果都是返回正确结果,那么Success_count加1,Java后台启动一个线程,每天统计一次rd_sms_request_count,先删除rd_sms_request_coun表的Success_count大于0的记录,证明这个ip是正常用户;如果Success_count等于0而且Failure_count大于10000(规则可自定义)就通过java代码把这个ip加入到iptables黑名单中,加入到iptables黑名单中的记录设置为1。
把满足条件的ip加入到iptables黑名单中核心代码(在linux测试过可以)