跳到主要内容
版本:预览版

序列化安全

概述

Seata 支持通信传输和数据库持久化字段的序列化协议扩展,理论上用户可以基于该扩展机制启用任意的序列化协议,这带来了极大的灵活的,但同时也要意识到其中潜藏的安全性风险。 数据反序列化是最容易被被攻击者利用的一个环节,攻击者利用它执行 RCE 攻击等窃取或破坏服务端数据。 用户在切换序列化协议或实现前, 应充分调研目标序列化协议及其框架实现的安全性保障。 Seata 框架自身并不能直接保证除默认提供的Seata序列化外的其他目标序列化机制的安全性。

Seata 官方提供的序列化包括以下几种:

  • Seata
  • Protobuf
  • Kryo
  • Hessian2
  • Fury
  • Fastjson2
  • FST

针对以上序列化扩展,在发现或收到相关的漏洞报告之后,Seata 官方会跟进并升级依赖到最新的安全版本,但最终的漏洞修复方案取决于序列化的框架实现。

建议

在无特殊需求的场景下,我们强烈建议您使用默认的 Seata 序列化,Seata 序列化对所有使用的 Message 做了Encode和 Decode 的实现,在实现中完全不依赖任何序列化框架,以保证性能和安全性。