Fastjson中如何启用和使用AutoType功能?

Fastjson 是一个 Java 库,主要用于将 Java 对象转换为 JSON 格式,或者将 JSON 字符串转换为 Java 对象。

Fastjson 是一个广泛使用的 JSON 解析库,由阿里巴巴开源,它主要用于 Java 对象和 JSON 数据之间的相互转换,在 fastjson 中,AutoType 特性允许在序列化时记录类型信息,并在反序列化时根据这些信息自动识别并恢复原始类型,这个特性也带来了一些安全隐患,因为攻击者可能利用 AutoType 进行反序列化攻击。

AutoType 的工作原理

fastjson autotype

当启用 AutoType 功能时,fastjson 会在序列化的 JSON 字符串中添加一个特殊的 "@type" 字段,用于存储实际对象的类名。

{
    "fruit": {
        "@type": "com.example.Apple",
        "price": 0.5
    },
    "name": "Hollis"
}

在反序列化时,fastjson 会读取这个 "@type" 字段,并根据其值动态地加载对应的类,从而将 JSON 数据正确地转换为目标对象。

AutoType 的安全风险

尽管 AutoType 提供了便利的类型识别机制,但它也带来了严重的安全风险,如果应用程序接收到恶意构造的 JSON 数据,其中包含伪造的 "@type" 字段,fastjson 可能会尝试加载并实例化不可信的类,从而导致远程代码执行等安全问题。

AutoType 的安全改进措施

为了应对这些安全风险,fastjson 采取了一系列措施来增强 AutoType 的安全性:

1、黑名单机制:引入了黑名单机制,对已知存在安全风险的类进行过滤,JSON 数据中的 "@type" 字段对应的类在黑名单中,fastjson 会拒绝反序列化并抛出异常。

2、白名单机制:除了黑名单,还引入了白名单机制,只有在白名单中的类才允许被反序列化,从而进一步限制了潜在的攻击面。

3、safeMode 配置:引入了 safeMode 配置选项,当 safeMode 开启时,无论白名单和黑名单如何设置,都不支持 AutoType,从而完全禁用了这一特性。

版本 发布日期 AutoType 相关更新
1.2.59 2019-07 增强 AutoType 打开时的安全性
1.2.60 2019-10 增加 AutoType 黑名单,修复拒绝服务安全问题
1.2.61 2019-11 增加 AutoType 安全黑名单
1.2.62 2019-12 增加 AutoType 黑名单、增强日期反序列化和 JSONPath
1.2.66 2020-02 Bug 修复安全加固,补充 AutoType 黑名单
1.2.67 2020-03 Bug 修复安全加固,补充 AutoType 黑名单
1.2.68 2020-06 支持 GEOJSON,补充 AutoType 黑名单,引入 safeMode 配置
1.2.69 2020-07 修复新发现高危 AutoType 开关绕过安全漏洞,补充 AutoType 黑名单
1.2.70 2020-08 提升兼容性,补充 AutoType 黑名单

FAQs

Q1: Fastjson 的 AutoType 功能默认是开启的吗?

A1: 不是,Fastjson 的 AutoType 功能默认是关闭的,需要显式地通过代码或配置文件来开启。

fastjson autotype

Q2: 如果我想使用 AutoType 功能,但又担心安全问题,应该怎么办?

A2: 如果确实需要使用 AutoType 功能,建议采取以下措施来降低安全风险:1. 仅在受信任的环境中使用 AutoType;2. 使用白名单机制,严格限制允许反序列化的类;3. 开启 safeMode,完全禁用 AutoType 功能(如果不需要该特性)。

小编有话说:Fastjson 的 AutoType 功能虽然方便,但使用时一定要谨慎,务必了解其工作原理和潜在的安全风险,并采取适当的安全措施来保护你的应用程序免受攻击,在处理外部输入的 JSON 数据时,始终要保持警惕,避免因疏忽而导致的安全漏洞。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1428826.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-12-23 18:17
下一篇 2024-05-09 19:41

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入