我尝试了添加 Interceptor,然后模拟host攻击,当http请求填充host后请求时没有进入Interceptor,又尝试了添加 Handler 依然是没有进入Handler,不知道JFinal是如何处理这种漏洞攻击。
模拟host篡改攻击
创建com.jfinal.handler.Handler子类
把Handler子类添加到启动配置,也尝试过添加com.jfinal.aop.Interceptor过滤器实现类
测试普通请求,非篡改host的请求能进入自定义的handler,但是改动host后就无法进入到这层handler了,Interceptor也是同样的情况
尝试添加javax.servlet.Filter实现类,
再次模拟http host篡改请求,结果和上面的handler一样,正常请求能拦截,但改动host后就没有进入我的filter
正如本文开头截图显示的,篡改host的请求有进入io.undertow.server.HttpHandler的一些实现类,如SetHeaderHandler、PathHandler,然后我尝试了自定义了一个HttpHandler子类,但http请求时没有触发我自定义的HttpHandler
最后的最后我只能通过变更io.undertow.server.handlers.SetHeaderHandler 源码来处理了,如果你们有更好的解决方法,烦请指导下我,谢谢了.
项目:JFinal