SpringBoot 实现控制器 IP 访问次数限制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot 实现控制器 IP 访问次数限制相关的知识,希望对你有一定的参考价值。

在 Web 中最经常发生的就是利用恶性 URL 访问刷爆服务器之类的攻击,今天我就给大家介绍一下如何利用自定义注解实现这类攻击的防御操作。

其实这类问题一般的解决思路就是:在控制器中加入自定义注解实现访问次数限制的功能。

具体的实现过程看下面的例子:

package example.controller.limit;  
import org.springframework.core.Ordered;  
import org.springframework.core.annotation.Order;  
import java.lang.annotation.*;  
  @Retention(RetentionPolicy.RUNTIME)  
  @Target(ElementType.METHOD)  
  @Documented  
  //最高优先级  
   @Order(Ordered.HIGHEST_PRECEDENCE)  
  public @interface RequestLimit {  
      /** 
       * 
       * 允许访问的次数,默认值MAX_VALUE 
       */  
      int count() default Integer.MAX_VALUE;  
    
      /** 
       * 
       * 时间段,单位为毫秒,默认值一分钟 
       */  
      long time() default 60000;  
  }


以上是关于SpringBoot 实现控制器 IP 访问次数限制的主要内容,如果未能解决你的问题,请参考以下文章

轻松两步,我在 SpringBoot 服务上实现了接口限流

轻松两步,我在 SpringBoot 服务上实现了接口限流

分布式架构(10)---基于Redis组件的特性,实现一个分布式限流

如何用Redis实现访问次数限流?

限流(访问频率)组件的使用

SpringBoot如何进行限流?封装AOP注解实现吧