技术交流28群

服务热线

135-6963-3175

微信服务号

Java JSON 组件选型FastJson 为什么总有漏洞 更新时间 2023-9-24 浏览2926次

      FastJSON(也称为FastJson)是一种在 Java 中处理 JSON 数据的开源组件。它具有高性能和便捷的特点,因此在 Java 开发中被广泛使用。然而,过去的一些版本的 FastJSON 曾经存在一些安全漏洞,这可能是你所提到的问题的原因。

安全漏洞的出现是常见的,不仅仅局限于 FastJSON。开源组件和库经常会发现漏洞,并在后续的版本中修复和改进。FastJSON 作为一个流行的 JSON 库,也经历了一些安全漏洞的修复过程。

以下是一些导致 FastJSON 存在漏洞的常见原因:

  • 代码缺陷:FastJSON 是一个复杂的组件,由大量的代码和功能组成。在开发过程中,可能会出现一些代码缺陷,例如边界条件错误、逻辑错误等,这可能导致潜在的漏洞存在。

  • 不安全的默认设置:过去的某些版本的 FastJSON 在默认设置下可能存在一些安全隐患。例如,允许反序列化特定类型的攻击载荷,或者允许执行恶意代码。这些问题通常在后续版本中得到修复,并通过更安全的默认配置来解决。

  • 漏洞的公开和修复:开源组件的安全漏洞通常是通过安全研究人员或用户社区的发现和报告而被公开的。一旦漏洞被公开,开发团队会尽快采取行动来修复和发布安全更新。然而,这需要时间,并且在修复之前,组件可能仍然容易受到攻击。

为了保持安全性,当使用 FastJSON 或其他任何开源组件时,以下是一些建议:

  • 及时更新:确保你使用的 FastJSON 版本是最新的,并定期更新以获取最新的安全修复和改进。

  • 安全配置:仔细检查和配置 FastJSON 的安全选项,以确保你使用的是最佳的安全设置。避免使用不安全的默认配置。

  • 安全审计:对你的代码进行安全审计,特别关注与 FastJSON 相关的代码和功能,以确保没有存在潜在的安全问题。

  • 参与社区:积极参与 FastJSON 的开发者社区和邮件列表,了解关于安全问题和修复的最新信息,并与其他开发者交流经验和最佳实践。

总之,FastJSON 作为一个高性能的 JSON 组件,在过去经历了一些安全漏洞的修复过程。通过使用最新版本、配置安全选项和进行安全审计,你可以最大程度地减少潜在的安全风险,并确保你的应用程序的安全性。


      以下是一些过去 FastJSON 版本中存在的一些安全漏洞的示例。请注意,这些漏洞可能已经在后续版本中得到修复,因此建议使用最新版本的 FastJSON 来避免这些问题。



FastJSON 1.2.24 及之前版本的反序列化漏洞(CVE-2017-18334):


这个漏洞允许攻击者构造恶意 JSON 数据,以执行任意代码或触发拒绝服务(DoS)攻击。

影响版本:FastJSON 1.2.24 及之前版本。

FastJSON 1.2.45 及之前版本的反序列化漏洞(CVE-2018-12920):


这个漏洞允许攻击者构造特定类型的攻击载荷,以执行任意代码。

影响版本:FastJSON 1.2.45 及之前版本。

FastJSON 1.2.47 及之前版本的反序列化漏洞(CVE-2019-17531):


这个漏洞允许攻击者构造恶意 JSON 数据,以执行任意代码或触发拒绝服务(DoS)攻击。

影响版本:FastJSON 1.2.47 及之前版本。


safeMode加固

fastjson在1.2.68及之后的版本中引入了safeMode,配置safeMode后,无论白名单和黑名单,都不支持autoType,可一定程度上缓解反序列化Gadgets类变种攻击(关闭autoType注意评估对业务的影响)


另外还是建议使用  Gson  或者使用  Jackson  ,优先推荐  Jackson  ,毕竟一直陪跑  Spring  系列,安全上还是有保证一点。