突发!Spring疑似沦陷了。。。

上一篇:字节跳动面试经验总结,已顺利拿到offer!

前晚,一位搞安全的朋友给我发消息说,Spring 框架有个大瓜。。。

d1268e44b3e9b8a8849ba4d6c1181ab0.png

真香,刚刚经历了 log4j2 这个大雷(参考:Log4j 史诗级大雷,大厂都中招了!   ),咱们 java 程序员引以为傲的Spring框架也报了RCE(远程命令执行),啪啪打脸~

目前,影响范围:JDK9、10、11 ,且使用了Spring框架。

之前 log4j2 爆出后,大部分企业都升级了JDK的版本,而这次 Spring RCE Leak 又刚好存在于高版本的 JDK 中。

因此,下面这两张图在安全圈子里面刷屏了,大家都调侃起来了~

220b4903ec7cad90f00f0686a2b2297c.png

d7598944479f88fe2833d41348e0ba04.png

同时朋友也给我发来了一条链接,Spring官方有一个提交疑似来解决 Spring RCE Leak。

https://github.com/spring-projects/spring-framework/commit/7f7fb58dd0dae86d22268a4b59ac7c72a6c22529

0dc907dc7c8f93b820d81f83db050efa.png

就以上这些信息看来,似乎确实是有问题!

但是官方目前并没有发声明,大家不用太担心。

临时修复方案

考虑到有些读者可能不放心,下面是我在网上看到的修复方案,大家可以参考一下。

需同时按以下两个步骤进行临时修复。

1、在应用中全局搜索@InitBinder注解,看看方法体内是否调用dataBinder.setDisallowedFields方法,如果发现有此代码片段的引入,则在原来的黑名单中,添加{"class.*","Class. *","*. class.*", "*.Class.*"},如果此代码片段使用较多,需要每个地方都追加。

2、在应用系统的项目包下新建以下全局类,并保证这个类被Spring 加载到,建议在controller所在的包中添加;另外,微信搜索公众号:互联网架构师,回复:面试 领取资料 完成类添加后,需对项目进行重新编译打包和功能验证测试,并重新发布项目,实例如下:

import org.springframework.core.annotation.Order;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.InitBinder;
@ControllerAdvice
@Order(0)
public class GlobalControllerAdvice{ 
@InitBinder
public void setAllowedFields(webdataBinder dataBinder){
       String[]abd=new string[]{"class.*","Class.*","*.class.*","*.Class.*"};
       dataBinder.setDisallowedFields(abd);
     }
}

其实,如果有waf的话,也可以在waf中配置 class.*,Class.*,*.class.*,*.Class.* 字符串进行过滤。

感谢您的阅读,也欢迎您发表关于这篇文章的任何建议,关注我,技术不迷茫!小编到你上高速。 

    · END ·

最后,关注公众号互联网架构师,在后台回复:2T,可以获取我整理的 Java 系列面试题和答案,非常齐全。

正文结束

推荐阅读 ↓↓↓

1.救救大龄码农!45岁程序员在国务院网站求助总理!央媒网评来了...

2.如何才能成为优秀的架构师?

3.从零开始搭建创业公司后台技术栈

4.程序员一般可以从什么平台接私活?

5.37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...

6.IntelliJ IDEA 2019.3 首个最新访问版本发布,新特性抢先看

7.这封“领导痛批95后下属”的邮件,句句扎心!

8.15张图看懂瞎忙和高效的区别!

ba119902ba85e7ff1f07323d62c6360c.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值