SpringBoot实现简易地址过滤器

业务提要:某个封装在框架底层的功能有xss漏洞风险,找了好久没找到,最终放弃从源码解决,改用过滤器过滤掉这个有危险的请求地址

一、解决思路

  1. 新建一个类继承 Filter 接口
  2. 在新建的类中使用 @WebFilter 注解指定需要过滤的 url 路径
  3. 重写的 doFilter 方法中删除 filterChain.doFilter() 方法使请求无法通过
  4. 启动类加上 @ServletComponentScan 注解扫描并加载过滤器

简单4步就能完成,是不是非常easy呢??

二、实现代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

/**
* @author : MrMao14
* @version : 1.0
* @program : web
* @description :SpringBoot指定路径过滤器
* @create : 2021/12/14 14:16
**/
@WebFilter(filterName = "sampleFilter",urlPatterns = {"/tags/imageclip"})
public class SampleFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
Filter.super.init(filterConfig);
}

@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//过滤器执行
// filterChain.doFilter(servletRequest,servletResponse);
}

@Override
public void destroy() {
Filter.super.destroy();
}
}