抵制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
不是转换是套壳,你从请求中获取数据的时候,套壳对象中的方法会对数据转义。你不提取数据,套壳对象的方法就不会执行。
00
相似问题