JSON工具类选型:Fastjson再爆洞后,项目中该用谁
大家好我是程序员天天困。2026 年 7 月Fastjson 1.x 又爆远程代码执行洞JSON工具类选型这事又被拎到台面上。按阿里官方安全公告致谢发现并负责任披露的是 FearsOff 研究员 Kirill Firsov——影响面覆盖1.2.681.2.83连当年被当成“安全终点”的 1.2.83 也没能幸免。更扎心的是默认解析入口就能走不依赖第三方 gadgetSafeMode 没开就中招。还只看谁解析更快真的会踩雷。洞一公开国内厂商也很快跟上。奇安信 CERT 在2026-07-20发了风险通告腾讯云安全通告页落款是2026-07-23同样点名 CVE-2026-16723并强调这是gadget-free不靠 classpath 里额外危险类的反序列化 RCE下面我会把这次洞、历史坑以及 Jackson / Gson / Hutool 怎么选一次讲清楚。点个收藏我们开始。一、这次 Fastjson 漏洞 CVE-2026-16723 到底怎么回事以 2026 年 7 月底为准还在用 Fastjson 1.2.681.2.83 解析不可信 JSON 的项目应优先当事故处理而不是当“听说有个洞”。时间线按一手源、按日期排一下更清楚1FearsOff / Kirill Firsov 发现并负责任披露阿里官方公告致谢2奇安信 CERT 风险通告公开时间2026-07-203阿里 fastjson2 官方安全公告 标注发布日2026-07-21后于 07-29 更新4腾讯云安全通告 页落款2026-07-23别被二手文章里的“统一 7 月 20 日”带偏——以各家页面自己写的日期为准。阿里官方公告里写得很直白CVECVE-2026-16723影响版本官方fastjson1.2.681.2.83含 1.x 最后一版 1.2.83触发条件默认配置即可AutoType 关、SafeMode 关不需要classpath 上再塞第三方 gadget常见部署前置目标跑在Spring Boot 可执行 fat-jarjava -jar xxx.jar入口JSON.parse、JSON.parseObject(String)、甚至JSON.parseObject(String, Class)都可达——指定 DTO 也不是银弹Object/Map 字段里照样能嵌 payload腾讯云通告也把核心特征写死了无需依赖特定第三方类库即可打到 RCE未开 SafeMode 的 1.x 实例在其通告范围内。有个细节要注意腾讯云通告写的影响版本是1.2.371.2.83比阿里官方 wiki 的1.2.681.2.83更宽做版本自查时我建议以阿里官方安全公告为准同时把云厂商通告当风险信号别互相打架。说人话以前很多团队以为「AutoType 关掉就安全了」。这次官方确认默认关掉也能走通危险路径。更扎心的是1.2.83 曾是 CVE-2022-25845 的修复终点很多人停在这里就再也没动过。官方给出的 P0 动作也很清楚公告更新于 2026-07-291升到fastjson 1.2.842026-07-29 安全修复版2或立刻开SafeMode-Dfastjson.parser.safeModetrue/ParserConfig.getGlobalInstance().setSafeMode(true)3或迁到fastjson2此 CVE 从架构上不受影响另外公告末尾提醒fastjson2 还有独立的 AutoType 加固问题请升到2.0.63 及以上。别把「不受这个 CVE 影响」理解成「永远不用升级」。发现与披露致谢见同一份官方 wikiKirill Firsov / FearsOff。补充一句时效腾讯云通告发出时还写“官方暂未发 1.x 补丁、建议迁 2.x / 开 SafeMode”到2026-07-29阿里已经放出1.2.84。读旧通告时记得对一下后续补丁。二、Fastjson 历史里几次真正伤人的洞Fastjson 的安全史本质上是一条 AutoType 攻防拉锯线不是偶发的“手滑 bug”。AutoType自动类型反序列化时允许 JSON 里用type指定具体 Java 类库再去加载并实例化。类比快递单上你自己填“收件人是谁”快递员按你写的门牌送——写错还是小事写成危险地址就麻烦了。几条经得起一手源核对的节点1CVE-2017-18349Fastjson1.2.25 之前parseObject可被构造请求打到远程代码执行NVD 给出 CVSS 3.x9.8。NVDCVE-2017-183492CVE-2022-25845Fastjson1.2.83 之前默认关闭 AutoType 仍可被绕过反序列化不可信数据可打远程服务器。阿里云漏洞库 AVD-2022-25845披露 2022-06-1131.2.83 → 1.2.842022 年大家把 1.2.83 当终点2026 年 7 月又证明终点会移动。仓库若早已归档、业务又停在 1.x风险窗口会特别长。中间还有一串 AutoType / JNDI 相关的补丁版本例如社区常提的 1.2.48 附近加固细节不必背全记住一句就够只要你还在解析外部不可信 JSONFastjson 1.x 就不该是“装完忘”的依赖。三、Spring Boot 里常见 JSON 工具怎么分工在 Spring Boot 项目里HTTP 出入参的默认选手通常是 Jackson不是 Fastjson。JacksonJava 里最常见的 JSON 序列化/反序列化库Spring MVC / Spring Boot 默认集成。类比厨房里自带的那把主厨刀日常切什么都先找它。GsonGoogle 出品的 JSON 库API 顺手注解体系清晰。类比外出野餐带的折叠刀——好用、好带但不一定是你后厨主力。Hutool JSONUtilHutool 这个 Java 工具全家桶里的 JSON 快捷方法偏“写业务辅助代码时顺手转一下”。类比工具柜里的多功能钳拧螺丝、剪线都行但别拿它当手术刀接公网不可信流量。可能有人会问我记得还有个跟 Hutool 很像的“啥都能干”的库常见是Guava或Jodd。Guava 强在集合、缓存、并发工具本身几乎不当 JSON 引擎团队里往往和 Gson 搭配Jodd 也有 JSON 模块但国内 Spring Boot 项目里出现频率通常低于 Hutool。选型别把“工具全家桶”和“专用 JSON 引擎”混成一件事。Spring Boot 默认链路大致是RequestBody/ResponseBody→HttpMessageConverter→Jackson的ObjectMapper。你在业务里再引一套 Fastjson等于同一项目两套规则——日期格式、空值、多态、异常行为都可能对不上。// 示例业务里自己再套一层时先想清楚是不是真需要第二套引擎ObjectMappermappernewObjectMapper();UserDTOusermapper.readValue(json,UserDTO.class);Stringoutmapper.writeValueAsString(user);四、Fastjson、Jackson、Gson、Hutool 怎么比JSON工具类选型时我优先看“是否解析不可信输入”其次才看 API 爽不爽、跑分漂不漂亮。维度JacksonFastjson / Fastjson2GsonHutool JSONUtilSpring Boot 契合默认集成最省心需额外接入可接非默认非 HTTP 层默认方案安全口碑接公网相对稳仍要控多态配置1.x 历史包袱重2.x 需跟版本通常更克制取决于你怎么用、解析什么API 手感注解强、可定制深静态方法很香学习曲线平工具类超顺手更适合Web API、复杂对象图性能敏感且能跟版本治理简单 DTO、工具脚本内部工具代码、快速转换社区里 JMH / 批量对比文章不少结论经常是小对象谁都差不多大对象、批量场景 Fastjson2 / Jackson 常更亮眼Gson、Hutool 更偏易用。跑分能参考但不能替代安全与生态判断——尤其你刚看完 CVE-2026-16723。你可能会想那 Fastjson 和 Jackson 对比性能党是不是必须上 Fastjson我更建议——先确认你有没有可感知的性能瓶颈。很多接口慢在 DB、远程调用、日志不在 JSON。真要压榨解析再评估 Fastjson2并且把版本升级、SafeMode/白名单策略写进规范别靠口头约定。五、我认为项目里该怎么选以 2026 年 8 月为准我的默认立场新 Spring Boot 项目 HTTP 层用 Jackson遗留 Fastjson 1.x 先止血再谈迁移。落地顺序我会这么排1新项目 / 主链路跟 Spring Boot用Jackson。日期、时区、未知字段、多态用注解和统一ObjectMapperBean 管起来。2已经在用 Fastjson 1.x立刻盘点版本。落在 1.2.681.2.83 且解析外部 JSON按官方建议升1.2.84或开 SafeMode中长期迁fastjson2≥2.0.63或干脆回到 Jackson。3Gson适合 SDK、小工具、对 Google 生态更熟的团队当第二套引擎可以别和 Jackson 在同一条 HTTP 链路上打架。4Hutool JSONUtil继续用在内部转换、测试代码、非不可信输入场景没问题不建议把它当成对外 API 的唯一反序列化方案。5Fastjson2可以选前提是团队愿意跟版本、愿意做回归别再把“国内流行”当成安全背书。举个常见场景一个老电商订单服务controller 用 Jackson消息消费和几个工具类却散落着 Fastjson 1.2.7x。一做依赖扫描就一堆洞后面统一迁移的成本往往比一开始定规矩更高。选型省下来的那点“写起来爽”后面都会连本带利还回去。以 2026 年中的风险面看Spring Boot 项目把 Jackson 当默认 JSON 引擎通常比死磕 Fastjson 1.x 更省心。JSON工具类选型没有永恒正确答案但有明确错误答案把停更的 Fastjson 1.x 默认配置继续裸奔在公网入参上。我是程序员天天困持续分享编程干货。觉得有用的话记得点赞收藏和关注~也欢迎在评论区聊聊你们公司项目里现在用的是 Jackson、Fastjson2、Gson 还是 Hutool踩过哪些坑

相关新闻

如何用DownGit实现GitHub精准下载:告别仓库臃肿,只取所需

如何用DownGit实现GitHub精准下载:告别仓库臃肿,只取所需

如何用DownGit实现GitHub精准下载:告别仓库臃肿,只取所需 【免费下载链接】DownGit github 资源打包下载工具 项目地址: https://gitcode.com/gh_mirrors/dow/DownGit 你有没有遇到过这样的场景?想要从GitHub下载一个项目的配置文件&a…

2026/10/7 8:53:54 阅读更多 →
发票抬头查询API:企业财务自动化的关键技术

发票抬头查询API:企业财务自动化的关键技术

1. 发票抬头查询API的核心价值与应用场景在商业交易中,发票抬头作为企业开票信息的关键组成部分,直接影响着财务报销、税务抵扣等核心业务流程。传统模式下,财务人员需要手动录入或核对开票信息,不仅效率低下,还容易因…

2026/10/8 5:52:31 阅读更多 →
寻找优质松木桩厂家,这几点让你避坑选对

寻找优质松木桩厂家,这几点让你避坑选对

寻找优质杉木桩厂家,这几点让你避坑选对在各类河道治理、地基加固及园林景观工程中,杉木桩因其出色的耐腐蚀性、韧性与性价比,成为了众多项目的首选。然而,面对市场上林林总总的供应商,如何筛选出真正优质的杉木桩&…

2026/9/27 3:12:55 阅读更多 →

最新新闻

J2EE超市订单后台管理系统实战:从架构设计到事务与库存扣减

J2EE超市订单后台管理系统实战:从架构设计到事务与库存扣减

直接用标题开写。G同学曾做过一个J2EE课程设计,叫“基于J2EE架构的超市订单后台理系统”,实打实地完整跑通了需求分析、编码、部署全过程。这篇文章就以这个项目代号11812为例,拆解开发全过程,把常规文档不会写的细节一并补上。1.…

2026/10/12 0:55:27 阅读更多 →
论文降AI率工具怎么选?十款实测对比与操作避坑指南

论文降AI率工具怎么选?十款实测对比与操作避坑指南

1. 这次测评的来龙去脉:为什么2026届突然集体焦虑“AI味"2026届本科生现在应该正处于毕业论文写作的关键周期,我不止一次在后台收到类似留言——“导师说我论文AI味太重”“自己写的怎么也被标成AI生成的”“降AI率工具到底哪个靠谱”。这一波焦虑不…

2026/10/12 0:55:27 阅读更多 →
采矿CAD课程设计PPT:从软件操作到工程表达的全链路建模

采矿CAD课程设计PPT:从软件操作到工程表达的全链路建模

简介:本资源是一份面向高校采矿工程、地质环境与安全工程专业学生的《采矿CAD课程设计》教学课件,聚焦矿山地质环境治理与生态保护的CAD辅助设计实践。课件系统梳理了矿山地质环境定义、矿区生态破坏成因(含景观与生态双重破坏)、…

2026/10/12 0:54:26 阅读更多 →
桌面调度台 vs 云端 Agent 平台:Orca、美团 CatPaw、NVIDIA 路由器的三条路线谁先跑通

桌面调度台 vs 云端 Agent 平台:Orca、美团 CatPaw、NVIDIA 路由器的三条路线谁先跑通

桌面调度台 vs 云端 Agent 平台:Orca、美团 CatPaw、NVIDIA 路由器的三条路线谁先跑通 【免费下载链接】orca Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and …

2026/10/12 0:54:26 阅读更多 →
Kubernetes Python 客户端 V1beta2ResourceClaim 模型详解:Dynamic Resource Allocation 资源声明的完整 API 参考

Kubernetes Python 客户端 V1beta2ResourceClaim 模型详解:Dynamic Resource Allocation 资源声明的完整 API 参考

后端云原生容器编排 【免费下载链接】python Official Python client library for kubernetes 项目地址: https://gitcode.com/gh_mirrors/python1/python 点击查看 免费下载 导读 本文面向使用官方 Kubernetes Python 客户端(本项目仓库 gh_mirrors/p…

2026/10/12 0:54:26 阅读更多 →
CodeIgniter 4 Request 类详解:HTTP 请求的面向对象封装与全局数据安全访问

CodeIgniter 4 Request 类详解:HTTP 请求的面向对象封装与全局数据安全访问

后端Web框架 【免费下载链接】CodeIgniter4 Open Source PHP Framework (originally from EllisLab) 项目地址: https://gitcode.com/gh_mirrors/co/CodeIgniter4 点击查看 免费下载 本指南以 CodeIgniter 4 官方用户指南 request.rst 为主体,系统讲解框…

2026/10/12 0:54:26 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →