随感:接口防刷
接口防刷
一段时间内接口的请求频率、数量过大。ip一般是不可变的,变化成本相对较高。
判断条件, ip+ua (ua可随便变,判断就失效)
举措,基于数据统计设定阀值:
1. ua检测,常见爬虫ua,比如带python字符,禁止访问;referrer判断;
2. 验证码,滑动图片等;需要人工干预;识别机器
3. 请求降速、延时返回、IP限制
4. token验证,校验服务端下发的token与请求的token是否一致,非法token直接丢弃 (可伪造正常请求token后,然后再次请求绕过)
5. 请求数据加密,提高成本,至少需要去了解 前端请求数据组装逻辑
日志分析告警,事后手动干预!!!
限制请求
不要登录的请求:
基于IP
基于设备限制
ip + ua ,存在误杀风险
防止同一设备多次操作?=> 调整成ip + 设备指纹
设备指纹: 理想状况:清掉缓存,换UA等等也是生成相同id。理解上只跟硬件或基本不可变的,比如操作系统相关,需要找相关开源算法,不能完全保证
不然调整为ip + ua + 唯一cookie/或其他参数(可变)
必须登录的请求:基于用户限制
ip + userId
防止相同ip下不同账号多次尝试? => 至少需要申请多个账号
评论