nginx限流防刷方案

前言

  互联网发展已经进入了存量期,一开始低廉的获客成本已经不复存在,互联网公司通过付出诱人而高昂的补贴以此来拉新的方式,催生了大量的黑产,灰产.并且越来越多的公司爆出数据泄露,暗网上用户的密码和隐私信息已经被打包明码标价出售.记得年前我司遭遇了撞库的攻击,部分用户的登陆凭证和密码被窃取.黑客通过其他渠道获得的手机号和密码字典,来请求我们的登陆接口.虽然最后造成的损失有限,但暴露了很多服务架构和业务安全性上的问题.

  首先,签名算法暴露和弱密码的问题.验签算法暴露在目前反编译解包如此成熟的情况下,很难防止.目前想到方案就是控制签名的salt分发.弱密码需要从业务层改造,成本比较高.或者弱化用账号密码登陆,转为第三方授权.

  其次,这次攻击发生的很早,但是几个小时后才通过接口流量监控发现请求量异常.发现时已经有大量的用户密码被拿到,造成后面的被动局面.如何才能发现这些异常的请求.

  最后,通过分析日志,黑客请求的ip数量都集中在有限个ip,完全可以通过规则去拒绝这些非法的请求.

  上述的后两个问题都可以通过今天要探讨的方案解决.

谁是狼人

  服务器每天都在接受上亿次的请求,怎么样判别哪些请求是无辜的平民,哪些是请求是要你命的狼人.

  通过分析请求log,可以发现非法的请求有几个特征:

1. 业务纬度的单一性:黑客攻击往往有目的,只会攻击那些比较重要的接口.比如上述案例里的登陆和校验手机号.
2. 时间纬度的集中性:为了短时间内拿到大量数据,黑客会通过批量频繁的请求.
3. ip有限性:这种窃取数据型的攻击行为有别于DDOS,一般ip代理池的数量不会太过庞大,每个ip请求的次数都比较多

  因此,采用{uri}+{ip}作为key,在某个时间纬度上,去统计请求量,从而鉴别非法请求的方法,能够有效的抵御案例的攻击

谁是猎人

  那么问题来了,谁来当猎人,抵挡狼人的攻击呢.

  服务架构上无非就几个地方

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值