protobuf 的安全问题 任何字段?



SO!

我正在考虑在服务到服务(通过网络(请求对象中使用Any字段:

message ServiceRequest {
google.protobuf.Any envelope;
}

客户端将发送打包在envelope字段中的任意数据,服务器将根据解压缩的类型信息调度给请求处理程序(实现一种多态调度(。具有无法识别类型的请求将被记录/丢弃。客户端和服务器可能会使用 Java 构建。

我的核心问题是:这种方法是否存在安全风险(或其他重大(缺点?

谢谢!

它并非完全任意 - 它实际上需要被识别为本地 protobuf 类型被视为不透明的有效载荷。它不允许调用方在本地实例化任意类型,这是少数系统(例如 .NET 中的BinaryFormatter(中的安全漏洞。所以:我不会对此感到非常震惊,因为我想知道oneof是否更合适,因为这将事情限制在你积极期望的事情上。

相关内容

最新更新