Update XssFilter.java

cyj
pbvfus8to 2 months ago
parent 80f2713f57
commit e77de28600

@ -21,32 +21,62 @@ import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
/** /**
* * `XssFilter``Filter`XSSCross-Site Scripting
* xss * Web
* `XssWrapper`XSSSpring便SpringWeb
*
* @author lgh * @author lgh
*/ */
@Component @Component // 表明这个类是一个Spring组件会被Spring容器扫描并实例化方便进行依赖注入等相关操作以及在Web应用中作为过滤器被正确管理和使用。
public class XssFilter implements Filter { public class XssFilter implements Filter {
// 创建一个日志记录器用于记录过滤器执行过程中的相关信息比如记录请求的URI等情况方便后续查看过滤器的执行情况以及排查可能出现的问题。
Logger logger = LoggerFactory.getLogger(getClass().getName()); Logger logger = LoggerFactory.getLogger(getClass().getName());
/**
* `init``Filter`Web
*
*
* @param filterConfig Web使
* @throws ServletException Web
*/
@Override @Override
public void init(FilterConfig filterConfig) throws ServletException { public void init(FilterConfig filterConfig) throws ServletException {
} }
/**
* `doFilter``Filter`
*
* 1. `ServletRequest``ServletResponse``HttpServletRequest``HttpServletResponse`
* WebHTTP便使HTTP
* 2. URI便
* 3. XSS`HttpServletRequest``XssWrapper``XssWrapper`XSS
* `chain.doFilter`ServletXSS
*
*
* @param request `HttpServletRequest`
* @param response `HttpServletResponse`
* @param chain Web`chain.doFilter`Servlet
* @throws IOException Web
* @throws ServletException ServletWeb
*/
@Override @Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException{ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request; HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response; HttpServletResponse resp = (HttpServletResponse) response;
logger.info("uri:{}", req.getRequestURI());
logger.info("uri:{}",req.getRequestURI()); // xss 过滤将原始的HttpServletRequest包装在XssWrapper中XssWrapper类应该实现了对请求参数等数据进行XSS过滤的逻辑
// xss 过滤 // 然后把包装后的请求对象传递给过滤器链的下一个环节使得后续的处理流程接收到的是经过XSS过滤后的请求数据。
chain.doFilter(new XssWrapper(req), resp); chain.doFilter(new XssWrapper(req), resp);
} }
/**
* `destroy``Filter`Web
*
*/
@Override @Override
public void destroy() { public void destroy() {
} }
} }
Loading…
Cancel
Save