jackson.ObjectMapper里enableDefaultTyping方法过期

enableDefaultTyping过期的原因是存在漏洞【阿里云上的漏洞公告】Jackson框架enableDefaultTyping方法反序列化漏洞

漏洞名称

Jackson框架enableDefaultTyping方法反序列化漏洞

官方评级

高危

漏洞描述

该漏洞是由于Jackson框架enableDefaultTyping方法存在Java反序列化代码执行漏洞,攻击者利用漏洞可在服务器主机上执行任意代码或系统指令,取得网站服务器的控制权。

漏洞利用条件和方式

黑客可以远程代码执行来利用该漏洞。

漏洞影响范围

Jackson 2.7 < 2.7.10

这个方法指定序列化输入的类型
解决之前

		ObjectMapper om = new ObjectMapper();
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        jackson2JsonRedisSerializer.setObjectMapper(om);
        template.setValueSerializer(jackson2JsonRedisSerializer);

解决方法:使用activateDefaultTyping方法替换掉enableDefaultTyping
替换方法为:

 		ObjectMapper om = new ObjectMapper();
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        //om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance ,
                ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
        jackson2JsonRedisSerializer.setObjectMapper(om);
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值