温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何避免java序列化漏洞

发布时间:2026-09-14 10:06:41 来源:亿速云 阅读:90 作者:小樊 栏目:编程语言

Java 序列化漏洞(如反序列化远程代码执行,典型如 Apache Commons Collections、Fastjson、Jackson 等历史漏洞)本质上是不可信数据被反序列化为危险对象导致的。避免这类问题可以从“不用 / 少用”“安全配置”“输入控制”“依赖治理”几个层面来做。


一、尽量避免使用 Java 原生序列化

最彻底的办法:不用 ObjectInputStream

  • 不要用 java.io.Serializable 做跨系统数据交换
  • 优先使用文本化、结构化的安全格式:
    • JSON(Jackson / Gson,关闭危险特性)
    • Protobuf
    • MessagePack(谨慎)
    • XML(禁用外部实体)

示例(推荐):

// 使用 Jackson
ObjectMapper mapper = new ObjectMapper();
MyObj obj = mapper.readValue(json, MyObj.class);

二、如果必须用 Java 序列化,做严格限制

1. 使用 ObjectInputFilter(Java 9+)

ObjectInputStream ois = new ObjectInputStream(in);
ois.setObjectInputFilter(info -> {
    if (info.serialClass() != null &&
        info.serialClass().getName().startsWith("com.myapp.")) {
        return ObjectInputFilter.Status.ALLOWED;
    }
    return ObjectInputFilter.Status.REJECTED;
});

2. 白名单反序列化类(核心原则)

✅ 只允许可信类
❌ 禁止 java.lang.Runtime、ProcessBuilder 等


三、绝不反序列化不可信数据

高危场景:

  • 公网请求体
  • Cookie / Session
  • 消息队列(MQ)
  • Redis / Memcached 中的未知数据
  • RMI / JNDI

✅ 正确做法:

  • 服务端之间用 Token + JSON
  • 缓存只存字符串或简单 DTO

四、依赖与框架安全

1. 慎用有“自动类型”的 JSON 库

Fastjson(高风险)

// 危险
JSON.parseObject(json);

// 安全
JSON.parseObject(json, Myclass.class);

✅ 建议:

  • 升级到 Fastjson 1.2.83+ 或 Fastjson2
  • 关闭 autoType

2. 定期扫描依赖漏洞

  • mvn dependency-check
  • Snyk
  • OWASP Dependency-Check

五、关闭危险特性(Jackson 示例)

ObjectMapper mapper = new ObjectMapper();
mapper.disable(DEFAULT_VIEW_INCLUSION);
mapper.disable(AUTO_DETECT_SETTERS);

避免:

  • 多态反序列化
  • @JsonTypeInfo 使用类名

六、架构层面的防御

  • 网关层拦截可疑 payload
  • 沙箱 / 低权限运行 Java 进程
  • 禁用 JNDI(Java 8u191+ 已默认限制)
  • 启用 SecurityManager(老旧但有效)

七、开发规范总结(可直接用)

✅ 禁用 ObjectInputStream 处理外部数据
✅ 使用 JSON + 明确类型
✅ 所有反序列化必须白名单
✅ 第三方库及时升级
✅ 不可信数据一律视为“字符串”


如果你愿意,我可以:

  • 帮你检查某个项目是否高危
  • 给你一份反序列化安全 Checklist
  • 针对 Fastjson / Jackson / Redis 给具体修复方案

你当前用的是哪种序列化方式?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手