安全修复之Web——Spring Framework 远程代码执行漏洞
背景
日常我们开发时,会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。
同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。
开发环境
- 系统:windows10
- 语言:Java
- 版本:JDK>=9、Spring Framework <= 5.3.17
漏洞
Spring Framework 远程代码执行漏洞
漏洞等级
严重
涉及范围
Spring Framework <= 5.3.17(最新版)及衍生框架开发的项目,并且使用 Tomcat 容器,JDK >=9 开发部署
修复方案
- 业务与开发方共同确认是否影响正常业务
- 对包含class.关键字的请求进行拦截(各种大小写要匹配到)
- 开发人员在项目的 Controller 层实现一个自定义的全局请求预处理,打上注解@ControllerAdvice,将该 Bean 的执行优先级提高打上注解@Order, 注册属性编辑器打上注解@InitBinder,将class.(各种大小写要匹配到)关键字添加到 WebdataBinder.setDisallowedFields()黑名单中,重新编译打包部署项目
- 使用 9 以下的 JDK 版本部署项目
本文声明:

88x31.png
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。