资讯专栏INFORMATION COLUMN

Redis实现访问频率限制

leoperfect / 780人阅读

摘要:通过记录同时初始时设置期限为秒,如果超时则重新设置,否则进行判断,当一分钟内访问超过次,则禁止访问。超过访问限制考虑到如果请求的频率在每秒次,每分钟请求次,那么即使它是有问题的访问,但是依然限制不了。

Method 1

通过key记录IP:rate.limiting:$IP,同时初始时设置期限为60秒,如果超时则重新设置,否则进行判断,当一分钟内访问超过100次,则禁止访问。

$isKeyExists = rate.limiting:$IP
if ($isKeyExists == 1) {
  $times = INCR rate.limiting:$IP
  if ($times > 100){
    print "超过访问限制"
    exit
  }
}else{
  MULTI
  INCR rating.limiting:$IP
  EXPIRE rating.limiting:$IP 60 
  EXEC
}

考虑到如果请求的频率在每秒10次,每分钟请求9次,那么即使它是有问题的访问,但是依然限制不了。So

Method 2
$listLength = LLEN rate.limiting:$IP
if ($listLength < 10) {
  LPUSH rate.limiting:$IP now()
}else{
  $time = LINDEX rate.limiting:$IP, -1
  if (now() - $time < 60){
     print "超过访问限制"
     exit
  }else{
     LPUSH rate.limiting:$IP now()
     LTRIM rate.limiting:$IP, 0, 9
  }
}

计算该IPkey的list长度,即该IP访问的时间队列,如果小于10次,那么将每次访问的时间入栈。否则,当访问次数满了10次,计算当前时间与最近一次访问时间的时间差,如果小于60秒,那么禁止访问,否则重置队列,重新存储访问时间。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/36132.html

相关文章

  • Nginx+Lua+Redis访问频率控制

    摘要:来处理访问控制的方法有多种,实现的效果也有多种,访问段,访问内容限制,访问频率限制等。用来做访问限制主要是考虑到高并发环境下快速访问控制的需求。处理请求的过程一共划分为个阶段,分别是在中,可以找到,,,等方法。那么访问控制应该是,阶段。 showImg(http://77l5jp.com1.z0.glb.clouddn.com/blog/logo-nginx-lua.png); ...

    沈俭 评论0 收藏0
  • Nginx流量拦截算法

    摘要:自身有的请求限制模块流量限制模块基于令牌桶算法,可以方便的控制令牌速率,自定义调节限流,就能很好的限制请求数量,然而,问题还是在于无法热加载。漏桶算法可以很好地限制容量池的大小,从而防止流量暴增。这也是对流量拦截的算法,针对做流量监测。 showImg(http://77l5jp.com1.z0.glb.clouddn.com/blog/logo-nginx-lua.png); 0x0...

    fuchenxuan 评论0 收藏0
  • 工作记录 >> 登录短信验证码防刷解决思路

    摘要:不过今天写的没有上面说的那么高大,只是一个小小的防刷解决思路。这是工作中经常遇到的在此仅做一个记录,以便回顾。同一个限制一分钟最多获取次超过次则锁定小时,锁定期间获取短信需加图片验证码收到这个需求利用做了简单的限流防刷功能。 一、写在前面 在互联网的发展史上,安全总是一个绕不开话题, 你有安全盾、我有破盾矛。所谓道高一尺、魔高一丈,不过互联网安全也正是在这种攻防中慢慢的发展起来的。 ...

    DandJ 评论0 收藏0
  • 工作记录 >> 登录短信验证码防刷解决思路

    摘要:不过今天写的没有上面说的那么高大,只是一个小小的防刷解决思路。这是工作中经常遇到的在此仅做一个记录,以便回顾。同一个限制一分钟最多获取次超过次则锁定小时,锁定期间获取短信需加图片验证码收到这个需求利用做了简单的限流防刷功能。 一、写在前面 在互联网的发展史上,安全总是一个绕不开话题, 你有安全盾、我有破盾矛。所谓道高一尺、魔高一丈,不过互联网安全也正是在这种攻防中慢慢的发展起来的。 ...

    whataa 评论0 收藏0
  • Redis实战之限制操作频率

    摘要:场景场景留言功能限制,秒内只能评论次,超出次数不让能再评论,并提示过于频繁场景点赞功能限制,秒内只能点赞次,超出次数后不能再点赞,并禁止操作个小时,提示过于频繁,被禁止操作小时场景上传记录功能,限制一天只能上传次,超出次数不让能再上传,并提 场景 场景1 留言功能限制,30秒 内只能评论 10次,超出次数不让能再评论,并提示:过于频繁 场景2 点赞功能限制,10秒 内只能点赞 10次,...

    KaltZK 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<