秒杀接口地址隐藏
防机器人
- 写一个接口以获取秒杀地址,接口中使用如用户ID+商品ID为key,value为UUID字符串设置到redis中,以便在第2步校验url是否正确,并返回UUID生成的字符串
- 拿到第1步生成的UUID字符串发送给真正的秒杀接口,校验UUID是否正确,若正确则继续秒杀接口逻辑
数学公式图形验证码
分散用户请求,防机器人
接口限流防刷
一段时间内访问接口数量 超过次数访问拒绝,
主要使用注解拦截器实现,使用request.getRequestURI()获取接口url 为key 访问次数为value 放入redis,在拦截器中通过获取redis的值decr 来限流
Integer count = redisService.get(ak, key, Integer.class);
if(count == null) {
redisService.set(ak, key, 1);
}else if(count < maxCount) {
redisService.incr(ak, key);
}else {
render(response, CodeMsg.ACCESS_LIMIT_REACHED);
return false;
}