springboot 接口防刷
*****************
接口防刷
刷接口造成的影响
循环访问接口,会使流量暴增,影响网站的正常对外服务
如果短信验证、支付接口遭到恶意访问,还会造成企业损失
接口防刷措施
限制ip访问频率与并发数,可用nignx进行限制
limit_req_zone $binary_remote_addr zone=one:10m rate=20r/s; #单个ip每秒请求数
limit_conn_zone $binary_remote_addr zone=addr:10m; #单个ip每秒并发数
接口添加验证码,如短信接口发送短信前先使用验证码验证
重要接口在用户认证后才能访问,非认证用户不能访问
后端对接口限流,限制同一用户访问频率,可使用guava、Redisson提供的限流工具
*****************
示例:后端接口限流
***********
配置文件
application.yml
spring:
redis:
host: 192.168.57.120
port: 6379
***********
dto 层
ResponseResult
@Data
public class ResponseResult<T> {
private String code;
private String status;
private String message;
private T data;
}
***********
annotation 层