面试大厂,优雅的接口防刷处理方案

文章讲述了如何通过在Interceptor中拦截请求,结合Redis统计用户访问接口次数来防止接口被刷。通过自定义注解和反射技术,可以针对不同接口设定特定的防刷规则,如最大访问次数和禁用时长。同时,提出将类名和方法名称加入到key中以更精确地区分接口,提高防刷策略的灵活性和定制性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转发自链接: link

1.通过ip地址+uri拼接用以作为访问者访问接口区分
通过在Interceptor中拦截请求,从Redis中统计用户访问接口次数从而达到接口防刷目的

2.就是现在我们的接口防刷处理,针对是所有的接口(项目案例中我只是写的接口比较少)
2.1我们都知道拦截器是可以设置拦截规则的,从而达到拦截处理目的;
3.要知道就是要进行防刷处理的接口,其 x, y, z的值也是并不一定会统一的
4.自定义注解 + 在需要进行防刷处理的各个接口方法上
5.在拦截器中通过反射获取到各个接口中的x, y, z值即可达到我们想要的接口自由目的
6.Interceptor处逻辑修改(最重要是通过反射判断此接口是否需要进行防刷处理,以及获取到x, y, z的值)
7.现在看起来,可以针对每个要进行防刷处理的接口进行针对性自定义多长时间内的最大访问次数,以及禁用时长,哪个接口需要,就直接+在那个接口方法出即可
8.修改自定义注解,让其可以作用在类上,达到通用的效果
9.在接口方法中常用的在请求路径中获取参数的套路
按照我们之前那种前缀+ip+uri拼接的形式作为key的话,其实是区分不了的
10.实际上可以再获取接口方法所在类类名,使用类名 + 方法名称替换uri即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值