jackson

FastJson 又被爆出漏洞,是时候抛弃了

独自空忆成欢 提交于 2020-11-01 06:24:26
点击“ 开发者技术前线 ”,选择“星标🔝” 在看|星标|留言, 真爱 链接 :urlify.cn/iYN3Uj 回 复“666” 获取一份专属大礼包 2020年05月28日, 360CERT监测发现业内安全厂商发布了Fastjson远程代码执行漏洞的风险通告,漏洞等级:高危。 Fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。 Fastjson存在远程代码执行漏洞,autotype开关的限制可以被绕过,链式的反序列化攻击者精心构造反序列化利用链,最终达成远程命令执行的后果。此漏洞本身无法绕过Fastjson的黑名单限制,需要配合不在黑名单中的反序列化利用链才能完成完整的漏洞利用。 截止到漏洞通告发布,官方还未发布1.2.69版本,360CERT建议广大用户及时关注官方更新通告,做好资产自查,同时根据临时修复建议进行安全加固,以免遭受黑客攻击。 0x02 风险等级 360CERT对该漏洞的评定结果如下 评定方式 等级 威胁等级 【高危】 影响面 【广泛】 0x03 影响版本 Fastjson:<= 1.2.68 0x04 修复建议 临时修补建议: 升级到Fastjson 1.2.68版本,通过配置以下参数开启 SafeMode 来防护攻击

SpringBoot2.X + SpringCache + redis解决乱码问题

烂漫一生 提交于 2020-11-01 05:33:12
环境:SpringBoot2.X + SpringCache + Redis Spring boot默认使用的是SimpleCacheConfiguration,使用ConcurrentMapCacheManager来实现缓存。 配置: spring: redis: host: 192.168.1.192 database: 1 port: 6379 password: 123456 timeout: 1s jedis: pool: max -active: 20 max -idle: 20 min -idle: 10 max -wait: - 1ms cache: redis: use -key-prefix: true key - prefix: dev cache - null -values: false time -to-live: 20s 解决redis保存数据乱码的问题 解决从redis反序列化报错的问题 增加失效时间 @Configuration @ConfigurationProperties(prefix = "spring.cache.redis" ) public class SpringCacheRedisConfig { private Duration timeToLive = Duration.ZERO; public void

redis序列化和反序列化

痴心易碎 提交于 2020-10-28 15:20:17
RedisTemplate中需要声明4种serializer,默认为“JdkSerializationRedisSerializer”: 1) keySerializer :对于普通K-V操作时,key采取的序列化策略 2) valueSerializer:value采取的序列化策略 3) hashKeySerializer: 在hash数据结构中,hash-key的序列化策略 4) hashValueSerializer:hash-value的序列化策略 public void setSerializer(RedisTemplate template) { Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer

Java面试之SpringMVC面试题

泪湿孤枕 提交于 2020-10-28 07:30:47
SpringMVC是一个模型-视图-控制器(MVC)的Web框架建立在中央前端控制器servlet(DispatcherServlet),它负责发送每个请求到合适的处理程序,使用视图来最终返回响应结果的概念。  1、讲下SpringMvc的核心入口类是什么,Struts1,Struts2的分别是什么   SpringMvc的是DispatchServlet,Struts1的是ActionServlet,Struts2的是StrutsPrepareAndExecuteFilter   2、SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决   是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的,解决方案是在控制器里面不能写字段   3、SpingMvc中的控制器的注解一般用那个,有没有别的注解可以替代   一般用@Conntroller注解,表示是表现层,不能用用别的注解代替.   4、@RequestMapping注解用在类上面有什么作用   用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。   5、怎么样把某个请求映射到特定的方法上面   直接在方法上面加上注解@RequestMapping,并且在这个注解里面写上要拦截的路径   6、如果在拦截请求中,我想拦截get方式提交的方法,怎么配置   可以在

springBoot集成redisson实现分布式锁

偶尔善良 提交于 2020-10-27 18:55:08
场景 公司有块业务需要跑定时业务,来处理数据,后台采用 springBoot 开发的, springBoot 集成定时任务还是挺简单的,使用 Scheduled 配置好 cron 就可以使用了,有个业务是每个小时的45分钟执行一次,因为后台是集群部署的,前端用 Nginx 做的负责均衡,就牵扯到一个问题,同一时刻,后台的定时任务只能用一个触发,最开始采用的 redis 做分布式锁,客户端是使用的 Jedis ,实现的分布式锁,网上基于 redis 实现分布式锁的文章太多了,这里就不再阐述了 基于 Jedis 实现分布式锁的初始代码如下 package com.juyi.camera.cache; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import redis.clients.jedis.Jedis;