代码审计-JAVA项目框架类漏洞分析报告

QQ截图20220419091325.jpg

QQ截图20220419091334.jpg

过滤器和拦截器的区别

  • Filter 是基于函数回调的,而 Interceptor 则是基于 Java 反射的。
  • Filter 依赖于 Servlet 容器,而 Interceptor 不依赖于 Servlet 容器。
  • Filter 对几乎所有的请求起作用,而 Interceptor 只能对 action 请求起作用。
  • Interceptor 可以访问 Action 的上下文,值栈里的对象,而 Filter 不能。
  • 最重要的要记住他们的执行顺序: 先 filter 后 interceptor,另外在不同框架中有的是自带(编码)有的是需要自写(安全防护规则),具体可以查看开发资料。

QQ截图20220419091802.jpg

  1. HttpServeletRequest:请求信息。
  2. ActionContextCleanUP,Other filters:不重要,貌似现在已经没用了。
  3. Filter Dispatcher:过滤器,这个应该是最底层的过滤器。
  4. ActionMapper:主要检测请求信息是否需要 Struts2 处理。
  5. ActionProxy:一个中间层,就是可以调用其他类什么的。
  6. ConfigurationManager:负责将 struts.xml 文件中配置文件映射到内存中
  7. Struts.xml:Struts 配置文件需要程序员填写。
  8. ActionInvocation:包含四个属性分别获取前端传递的值,action,struts.xml 信息,其他一些数据。
  9. Interceptor:拦截器不是太理解应该是获取前端传递的属性值,然后封装到 action 的属性域中。
  10. Tag Subsystem:Struts2 自带标签库没用
  11. Templete:Struts2 的前端模版,没用吧,不清楚。
  12. HttpServletResponse:响应信息