基于全局储存的新思路 | Tomcat的一种通用回显方法研究

对于不出网的反序列化回显,有利用Linux文件描述符的方法: linuxjava反序列化通杀回显方法的低配版实现》
,思路比较巧妙,但有一些局限性,对比起来感觉response直接写回显会比较方便,但是其在通用性上也存在痛点:

很多框架对于Serlvet进行了封装,不同框架实现不同,同一框架的不同版本实现也可能不同,因此我们无法利用一种简单通用的方法去获取当前请求的response。

针对这一点,前几天在先知社区看到了@kingkk师傅的 《Tomcat中一种半通用回显方法 》
学习了一下,师傅的思路很巧妙: 通过反射修改控制变量,来改变Tomcat处理请求时的流程,使得Tomcat处理请求时便将request,response存入ThreadLocal中,最后在反序列化的时候便可以利用ThreadLocal来取出response
。师傅的寻找过程主要是从Tomcat处理请求的调用栈中寻找有机会的代码流程。我在学习完师傅的文章之后也试着跟着调用栈寻找了一下,看是否有别的方法,但是发现这种方法比较掣肘于Tomcat处理请求时现有的流程,没有更好的发现。于是尝试换一种思路, 不再寻求改变代码流程,而是找找有没有Tomcat全局存储的request或response

原文 

http://wiki.ioin.in/url/vnaG

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 基于全局储存的新思路 | Tomcat的一种通用回显方法研究

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址