一、目的
目的:防止频繁表单提交POST、POST接口调用(主要针对数据的新增、修改、删除等操作),防止过于频繁对数据库造成影响,主要针对数据库的写操作;
主要来源:针对程序不间断地调用,暴力破解等;
二、防范手段和方式
1、在nginx 前端开发模块同一显示 针对(POST/PUT/DEL)
2、在服务service上面做限制(IP/userid/标识)
3、如何提示策略
如何定义频繁:两次提交POST间隔小于30秒,且连续3(n)次
如何标识用户:userid或者ip
如何提示:503 or “请勿频繁操作? 休息一会儿”
如何限制:黑名单池,标识:限制时长
如何恢复:从黑名单中删除
黑名单缓存化:需要失效机制(主动失效和被动失效)
黑名单持久化:保存一份黑名单,重点对待
黑名单转换:冻结帐户(锁定),需要手动申请重新开启
4、提示文案
您最近操作频繁或账户存在不安全因素,已被系统锁定一段时间,请稍候再试
00:00 至 5:00 期间系统维护,期间不能操作近期您操作过于频繁,已被系统锁定,请一小时后再试
三、如何实现