protobuf 的安全问题 任何字段?
Security concerns with protobuf Any fields?
太棒了!
我正在考虑在服务到服务(通过网络)请求对象中使用 Any
字段:
message ServiceRequest {
google.protobuf.Any envelope;
}
客户端将发送打包在 envelope
字段中的任意数据,服务器将根据未打包的类型信息分派给请求处理程序(实现一种多态分派)。具有无法识别类型的请求将是 logged/dropped。客户端和服务器可能会使用 Java.
构建
我的核心问题是:这种方法是否存在安全风险(或其他重大)缺点?
谢谢!
它不是 完全 任意 - 它实际上需要被识别为本地 protobuf 类型 或 被视为不透明的有效载荷。它不允许调用者在本地实例化任意类型,这在一些系统中是一个安全漏洞(例如,.NET 中的BinaryFormatter
)。所以:我不会对此感到非常震惊,我想知道 oneof
是否更合适,因为这会将事情限制在你 积极期望的事情 .
太棒了!
我正在考虑在服务到服务(通过网络)请求对象中使用 Any
字段:
message ServiceRequest {
google.protobuf.Any envelope;
}
客户端将发送打包在 envelope
字段中的任意数据,服务器将根据未打包的类型信息分派给请求处理程序(实现一种多态分派)。具有无法识别类型的请求将是 logged/dropped。客户端和服务器可能会使用 Java.
我的核心问题是:这种方法是否存在安全风险(或其他重大)缺点?
谢谢!
它不是 完全 任意 - 它实际上需要被识别为本地 protobuf 类型 或 被视为不透明的有效载荷。它不允许调用者在本地实例化任意类型,这在一些系统中是一个安全漏洞(例如,.NET 中的BinaryFormatter
)。所以:我不会对此感到非常震惊,我想知道 oneof
是否更合适,因为这会将事情限制在你 积极期望的事情 .