Java技术学习V0.01
2017-12-24 本文已影响11人
小谷先生
Fastjson
- java处理JSON数据有三个比较流行的类库,gson(google维护)、jackson、以及Fastjson。
- Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。
- Fastjson的常用API是:
- Json.toJsonString(group)【序列化】
- 和Json.parseObject(jsonString,xxx.class)【反序列化】。
- 如果不知道对应反序列化类型(如数据库是否查询得到结果不一样),反序列化还支持使用泛型类型,风险由此产生。如果在json中json key内容等于@type,并且未设置checkAutoType黑名单的话,就会存在反序列化漏洞。若参数是用户输入的,那么黑客可以生成有漏洞的类进行远程命令执行攻击。
Log4j
- Log4j是一个功能强大的日志组件(框架),提供方便的日志记录。
参考资料
- 1.【影响fastjson-1.2.22到1.2.24区间版本】利用条件苛刻有些鸡肋,https://paper.seebug.org/292/