抵制XSS攻击执行流程困惑

来源:2-9 抵御即跨站脚本(XSS)攻击

weixin_慕数据3524288

2023-12-04

老师您好!对于抵制XSS攻击我有如下几个问题:
XssHttpServletRequestWrapper类继承了HttpServletRequestWrapper类,对其中的某些方法进行了重写,用来转义数据,增强了HttpServletRequestWrapper类中的方法,防止XSS攻击。

XssHttpServletRequestWrapper xssHttpServletRequestWrapper = new XssHttpServletRequestWrapper(httpServletRequest);

上述代码将原先的ServletRequest的对象转换成了XssHttpServletRequestWrapper类的对象,

filterChain.doFilter(xssHttpServletRequestWrapper,servletResponse);

上述代码将转换后的对象放在doFilter方法中进行放行。
(1)当系统要执行getParameter、getParameterValues、getParameterMap、getHeader、getInputStream这些方法时,并不是执行原来ServletRequest对象,而是要执行我们转换后的XssHttpServletRequestWrapper对象中对应的方法,这种理解是否正确?
(2)增强过的方法getParameter、getParameterValues、getParameterMap、getHeader、getInputStream这些方法在什么时机会执行?只要拦截下了HTTP请求,不管请求中有没有携带数据,就执行吗?
麻烦老师为学生解开困惑!

写回答

1回答

神思者

2023-12-05

不是转换是套壳,你从请求中获取数据的时候,套壳对象中的方法会对数据转义。你不提取数据,套壳对象的方法就不会执行。

0
0

SpringBoot 在线协同办公小程序开发 全栈式项目实战

未来趋势型业务 + 前后端综合技术栈 + 惊艳的细节打磨

1798 学习 · 1915 问题

查看课程