文章更新时间:2023年8月22日 17:40
![com.alibaba:fastjson](https://zhi.oscs1024.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
组件简介
维护者 | alibaba组织 | 许可证类型 | Apache-2.0 |
首次发布 | 2015年5月10日 | 最新发布时间 | 2023年8月15日 |
依赖包 | 5,081 | 依赖存储库 | 117,744 |
Docker 依赖数 | 1,494 | Docker 下载量 | 9,591,272 |
fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。
官网:https://alibaba.github.io/fastjson2/
官方仓库地址:https://github.com/alibaba/fastjson2
使用文档:https://github.com/alibaba/fastjson2/blob/main/README.md
参考链接:
https://packages.ecosyste.ms/registries/repo1.maven.org/packages/com.alibaba:fastjson
组件健康度
技术健康度 | 根据GitHub上的信息,fastjson是一个高性能、易用、功能丰富的JSON库,它可以实现Java对象和JSON字符串之间的相互转换,支持任意复杂的Java对象,包括预先存在的没有源代码的对象。它还提供了一些高级特性,如自定义序列化器、泛型支持、安全模式等。fastjson在服务器端和安卓客户端都有很好的表现,它在一些性能测试中都取得了优异的成绩。 |
社区健康度 | fastjson是由阿里巴巴开发和维护的一个开源项目,它在GitHub上有超过2.7万个星标,是Java类别中最受欢迎的项目之一。它也有很多贡献者和用户,目前有超过130个分支,超过3400个提交,超过1400个问题,超过800个拉取请求。它的社区活跃度很高,经常有新的功能和修复发布。 |
更新和维护频率 | fastjson的更新和维护频率很高,它目前已经发布了2.0.x版本,比1.x版本更快更安全,建议用户升级到最新版本。它的最近一次提交是在2023年8月22日,最近一次发布是在2023年8月15日。它也有一个详细的更新日志,记录了每个版本的变化和改进。 |
兼容性 | 该组件与其他项目组件和框架有着良好的兼容性。它可以无缝集成在 Spring 和 JAX-RS 中,也可以在 Kotlin 中使用。它还支持 Java 泛型和自定义对象表示。 |
文档和支持 | 该组件有着清晰和详尽的文档,以及提供相应的用户支持和社区交流渠道。它在 GitHub 上有着完整的 wiki 和 FAQ,以及一些示例代码和最佳实践指南。它还有着一个活跃的 issue 和 pull request 系统,以及一个 gitter 聊天室。 |
综上所述,com.alibaba:fastjson这个组件的健康度很高,它是一个值得信赖和使用的JSON库。
参考链接:
https://github.com/alibaba/fastjson
https://github.com/alibaba/fastjson2
https://github.com/eishay/jvm-serializers/wiki
https://github.com/alibaba/fastjson2/wiki/fastjson_benchmark
https://alibaba.github.io/fastjson2/
许可证解读
Apache License 2.0 是一种开源软件许可证,广泛用于授权开源项目和代码。Apache License 2.0 允许用户自由地使用、修改和分发受许可的软件,而无需支付版权费用或专利费用。它鼓励开发者共享他们的代码,并保护用户的权利。以下是该许可证的一些重要特点:
- 代码使用权:用户可以自由地使用、复制、修改、合并、发布、分发和销售受许可软件。
- 版权声明:用户必须在所有源代码副本中保留原始的版权声明、许可证声明和免责声明。
- 修改代码:如果用户对代码进行了修改,需要清楚标明哪些部分发生了变化,并不能暗示原作者同意这些修改。
- 商标使用:Apache License 2.0 并未授予使用原软件的任何商标或名称的权利。
- 专利许可:该许可证授予了在使用、修改或分发受许可软件时相关专利的非独占许可。这意味着如果用户授权其他人使用该软件,相关专利许可也会传递给接收方。
- 再许可:用户可以将受 Apache License 2.0 许可的代码作为一部分整合到其它开源项目中,并使用不同的许可证授权整个项目。但是,需要在代码中显式地说明使用了 Apache License 2.0 许可的部分。
需要注意的是,Apache License 2.0 并不保证软件没有缺陷或不稳定性,使用该软件的风险由用户自行承担。
许可证原文链接:fastjson2/LICENSE at main · alibaba/fastjson2 (github.com)
组件漏洞版本及修复方案
漏洞编号 | 漏洞标题 | 漏洞等级 | 影响版本 | 修复版本 |
MPS-2022-11320 | Fastjson < 1.2.83 任意代码执行漏洞 | 高危 | [1.1.15,1.2.83) | 1.2.83 |
MPS-2020-39708 | Fastjson <=1.2.68 远程代码执行漏洞 | 严重 | [1.1.15,1.2.69) | 1.2.69 |
MPS-2020-40828 | Fastjson < 1.2.67远程命令执行漏洞 | 高危 | [1.1.15,1.2.67) | 1.2.67 |
MPS-2019-28847 | Fastjson <= 1.2.60 版本远程代码执行漏洞 | 严重 | (-∞,1.2.61) | 1.2.61 |
同类可替代组件
- Jackson: Jackson是Java中一个广泛使用的JSON处理库,具有高性能和广泛的功能。它支持JSON和Java对象之间的双向转换,并且在大多数情况下与fastjson具有相似的性能。 官网:https://github.com/FasterXML/jackson
- Gson: Gson是Google提供的JSON库,可以轻松地将Java对象序列化为JSON格式,并将JSON字符串解析回Java对象。它简单易用,适用于许多场景。 官网:https://github.com/google/gson
- JSON.simple: JSON.simple是一个轻量级的JSON处理库,特别适合处理简单的JSON数据。它相对于其他库来说更小巧,但功能也较为有限。 官网:https://github.com/fangyidong/json-simple
- org.json: org.json是Java标准库中的JSON处理库,提供了简单的JSON解析和构建功能。尽管它不如其他库那么强大,但在某些场景下可能是一个合适的替代方案。 官网:https://stleary.github.io/JSON-java/index.html
选择合适的替代组件取决于项目的需求和性能要求。如果您需要高性能的JSON解析库,可以选择Jackson或Gson。如果项目需要一个简单而轻量级的解决方案,可以考虑JSON.simple或org.json。最终的选择应该基于项目的具体要求和性能需求来做出决定。
组件SBOM
org.springframework:spring-beans | 5.3.28 | 否 | maven |
net.sourceforge.javacsv:javacsv | 2.0 | 是 | maven |
org.springframework:spring-messaging | 5.3.28 | 否 | maven |
org.apache.tomcat.embed:tomcat-embed-core | 10.1.10 | 否 | maven |
com.google.protobuf:protobuf-java | 3.24.0 | 是 | maven |
org.springframework:spring-context | 6.0.10 | 否 | maven |
io.micrometer:micrometer-observation | 1.10.8 | 否 | maven |
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml | 2.15.2 | 否 | maven |
jakarta.annotation:jakarta.annotation-api | 1.3.5 | 否 | maven |
org.jboss.logging:jboss-logging | 3.4.1.Final | 否 | maven |
com.google.re2j:re2j | 1.6 | 否 | maven |
org.springframework.boot:spring-boot-starter-web | 2.7.13 | 是 | maven |
org.springframework.boot:spring-boot | 3.1.1 | 否 | maven |
org.springframework.boot:spring-boot-configuration-processor | 3.1.1 | 是 | maven |
org.springframework:spring-web | 6.0.10 | 否 | maven |
com.esotericsoftware:reflectasm | 1.11.9 | 否 | maven |
org.springframework.boot:spring-boot-starter-validation | 2.7.13 | 是 | maven |
org.apache.tomcat.embed:tomcat-embed-el | 9.0.76 | 否 | maven |
…… |
该SBOM清单仅展示部分内容
完整SBOM清单及检测报告:https://www.murphysec.com/console/report/1693930597566472192/1693930602092126208?allow=1