RASP内置了javax.servlet.Servlet和javax.servlet.Filter接口的Hook方法,Servlet容器中的任何Servlet或Filter在被调用之前都被RASP插入了劫持代码。RASP通过劫持javax.servlet.Servlet的service方法和javax.servlet.Filter类的doFilter方法不但可以获取到原始的HttpServletRequest和HttpServletResponse对象,还可以控制Servlet和Filter的程序执行逻辑,从而让RASP能够控制整个Http请求的生命周期。
RASP劫持Servlet/Filter对象原理:
RASPHttpRequestContextManager:
当Servlet或Filter请求结束后会调用RASPHttpRequestContextManager#finishHook清理RASP Context中的缓存数据。
