fastjson发布1.1.3版本

Fastjson 1.1.3是一个重要的功能增强版本,在这个版本开始,fastjson支持循环引用,完善支持WriteClassName的特性,使得fastjson开始具备替换hessian和java serialize的能力。


[b]支持循环引用。[/b]

很多用户在初次使用fastjson时都遇到了循环引用的问题,这是反映最多的问题,我越来越认识到支持循环引用的必要性。经过测试,加入循环应用的支持对性能的影响很小,小于5%。我决定在1.1.3加入循环应用支持,而且是缺省打开这个特性。

fastjson支持的循环应用是自然的,不需要象jackson那样,需要Annotation设置。fastjson支持的引用,是基于path的,方便javascript解析。

语法
{"$ref":"$"} // 引用根对象
{"$ref":"$"} // 引用根对象
{"$ref":"@"} // 引用自己
{"$ref":".."} // 引用父对象
{"$ref":"../.."} // 引用父对象的父对象
{"$ref":"$.members[0].reportTo"} // 基于路径的引用


具体例子看这里:http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=5832796


[b]自省支持[/b]
在标准中,将对象序列化为JSON文本之后,就丢失了类型信息。虽然fastjson能够支持parse时传入Class来实现类型的识别,但是这个有局限性,在fastjson 1.1.3之后,完善支持一个特性,就是自省。

具体例子请看这里:http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=5832803

[b]支持非缺省构造函数和工厂方法构造对象[/b]
fastjson 1.1.3开始支持没有缺省构造函数的Java对象的反序列化。通过@JSONCreator来标识构造对象的方式。

具体请看这里:
* 非缺省构造函数 http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=5832818
* 工厂方法 http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=5832821

[b]原型接口[/b]
以接口的方式来操作json数据,这个特性是借鉴了jackson的功能。
具体例子看这里:http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=5832824

[b]How to get it?[/b]
If you're Maven user, just use our maven repository(http://code.alibabatech.com/mvn/releases/) with folloging dependency

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.3</version>
</dependency>


[b]Downlaods[/b]
Binary : http://code.alibabatech.com/mvn/releases/com/alibaba/fastjson/1.1.3/fastjson-1.1.3.jar
Source :http://code.alibabatech.com/mvn/releases/com/alibaba/fastjson/1.1.3/fastjson-1.1.3-sources.jar
Subversion : http://code.alibabatech.com/svn/fastjson/trunk/fastjson/

[b]Issue tracking[/b]
http://code.alibabatech.com/jira/plugins/servlet/project-config/FASTJSON/versions
* Bug
[FASTJSON-73] - 不支持Set类型数据的反序列
[FASTJSON-77] - JSONSerializerMap存在兼容问题
[FASTJSON-78] - java.util.concurrent.TimeUnit序列化数据不对

* Improvement
[FASTJSON-71] - 使用Base64编码优化byte[]字段的序列化和反序列化性能
[FASTJSON-72] - 使用SoftReference处理ThreadLocalCache

* New Feature
[FASTJSON-74] - 支持序列化时输出类型信息
[FASTJSON-75] - 支持Key类型不是String的Map的序列化和反序列化
[FASTJSON-80] - 原型接口
[FASTJSON-81] - 支持循环引用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]和引用\[2\]的内容,判断fastjson版本号是非常重要的,因为不同版本fastjson存在不同的漏洞利用方式。在实战中,如果无法准确判断fastjson版本号,可能导致漏洞利用不成功,难以找到准确的原因。为了区分fastjson版本号,可以参考引用\[1\]中提到的一些方法,比如检查fastjson版本号是否在特定范围内,或者通过搭建不同版本fastjson漏洞环境进行校勘。然而,需要注意的是,引用\[2\]中指出网上对于fastjson版本号与漏洞payload的对应描述可能存在不准确或错误的情况,所以在参考这些描述时需要谨慎。总之,准确区分fastjson版本号对于在实战中对fastjson反序列化漏洞进行研判是非常重要的。 #### 引用[.reference_title] - *1* *2* [fastjson反序列化漏洞区分版本号的方法总结](https://blog.csdn.net/weixin_57567655/article/details/125816498)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【版本问题】fastjson版本不一致引发的问题](https://blog.csdn.net/weixin_45020214/article/details/123734197)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值