业务提要:某个封装在框架底层的功能有xss漏洞风险,找了好久没找到,最终放弃从源码解决,改用过滤器过滤掉这个有危险的请求地址
一、解决思路
- 新建一个类继承
Filter
接口
- 在新建的类中使用
@WebFilter
注解指定需要过滤的 url
路径
- 重写的
doFilter
方法中删除 filterChain.doFilter()
方法使请求无法通过
- 启动类加上
@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;
@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 {
}
@Override public void destroy() { Filter.super.destroy(); } }
|