接口防刷解决思路

场景和原因:

1.在项目中后台只需要提供一套API接口,就可以接入安卓、小程序、IOS、web等多个应用程序,这样可以节约开发成本。
但是一个后台接入这么多应用程序的http请求,必然导致后端的压力非常大。对于这些情况我们需要对用户的访问进行限流访问,我们可以依次对Nginx、tomcat、接口进行限流。
2.对于一些请求进行过滤和拦截是非常有必要的,能够有效地减轻后台的压力。
3.考虑线上环境 很多接口 如果不做缓存 可能导致有人拿到url 每秒几万次的访问后台程序,导致系统down机。
4.短时间接口被大量调用(攻击),出现系统崩溃和系统爬虫问题,怎么样提升服务的可用性?

商讨解决方法

1.最简单有效的防护就是图片验证码,采用点触验证,验证滑动或者是第三方验证码服务,普通的图片验证码很容易被破解
2.频率,或者叫接口防刷,通过用户具有唯一性的ip验证用户的身份,模拟一个场景,每次用户调用接口,将此用户的ip进行记录,在有效的时间之内,用户每调用一次接口,给调用的次数+1,当超过(次数根据自己的时间情况进行定义)指定的次数时,将调用这个接口的用户ip加入黑名单中,锁定时间到了(锁定时间根据实际情况进行定义)之后移除在黑名单中的用户ip,进行解锁,但是每次用户在短时间内调用接口,实时记录的ip,次数,时间存到什么地方呢?
数据库,文件,memcache, redis?
最终的方案是redis!
redis是一种基于内存的

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值