类 DDosFilter

  • 所有已实现的接口:
    javax.servlet.Filter

    @WebFilter(filterName="DDosFilter",
               urlPatterns="/ddos/*")
    public class DDosFilter
    extends java.lang.Object
    implements javax.servlet.Filter
    防DDOS过滤器 本过滤器应该覆盖应用入口、应用服务。 参数名称:
     enter-uri      (必选,不含contextPath)
     入口地址,如/sample/request.jsp,多个入口地址使用换行间隔
    
     referer-prefix (可选,设定则校验入口地址以外的请求referer)
     referer前缀,多个referer前缀使用换行间隔。除了入口地址外,其它请求referer必须以[referer_prefix]内的某个值开头
    
     second-limit   (可选,[second_limit]、[visit_limit]必须全部大于0才能生效)
     限制的秒数
    
     visit-limit    (可选,[second_limit]、[visit_limit]必须全部大于0才能生效)
     指定时间[second_limit]内限制的访问次数
    
     deny-message (可选)
     拒绝的返回消息,缺省为“{errcode:174000, errcode:'Your are welcome!'}”
     
    工作机理如下:
     1. 在程序入口设置Session,Session中保存2 KEY:SessionId、浏览器的user-agent;
     2. 在程序入口之外的应用服务中,检查2 KEY是否与程序入口保存的2 KEY相同;
     3. 针对本过滤器覆盖的访问,单个Session请求在指定的[second_limit]秒时间内,只允许执行[visit_limit]次访问
     
    版本:
    1.0 2017-04-02 紧张了这么长时间,清明假期第一天,春光明媚!!, 1.1 2021-01-28 在南瑞路8号整理培训材料,顺便添加一下filter的启用参数
    作者:
    帮帮组
    • 构造器概要

      构造器 
      构造器 说明
      DDosFilter()  
    • 方法概要

      所有方法 实例方法 具体方法 
      修饰符和类型 方法 说明
      void destroy()
      销毁处理方法
      void doFilter​(javax.servlet.ServletRequest argRequest, javax.servlet.ServletResponse argResponse, javax.servlet.FilterChain argChain)
      HTTP 请求字符编码过滤处理
      void init​(javax.servlet.FilterConfig argFilterConfig)
      初始化方法
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 构造器详细资料

      • DDosFilter

        public DDosFilter()
    • 方法详细资料

      • init

        public void init​(javax.servlet.FilterConfig argFilterConfig)
                  throws javax.servlet.ServletException
        初始化方法
        指定者:
        init 在接口中 javax.servlet.Filter
        参数:
        argFilterConfig - 过滤配置信息
        抛出:
        javax.servlet.ServletException - Servlet 异常
        另请参阅:
        Filter.init(FilterConfig)
      • doFilter

        public void doFilter​(javax.servlet.ServletRequest argRequest,
                             javax.servlet.ServletResponse argResponse,
                             javax.servlet.FilterChain argChain)
                      throws java.io.IOException,
                             javax.servlet.ServletException
        HTTP 请求字符编码过滤处理
        指定者:
        doFilter 在接口中 javax.servlet.Filter
        参数:
        argRequest - ServletRequest
        argResponse - ServletResponse
        argChain - FilterChain
        抛出:
        java.io.IOException - 数据流异常
        javax.servlet.ServletException - servlet异常
        另请参阅:
        Filter.doFilter(ServletRequest, ServletResponse, FilterChain)
      • destroy

        public void destroy()
        销毁处理方法
        指定者:
        destroy 在接口中 javax.servlet.Filter
        另请参阅:
        Filter.destroy()