所以!
我正在考虑使用一个 Any
字段。
message ServiceRequest {
google.protobuf.Any envelope;
}
客户机将发送任意的数据,这些数据被打包在 "服务对服务 "的请求对象中。envelope
字段,服务器将根据未打包的类型信息调度给请求处理程序(实现一种多态调度)。未识别类型的请求将被记录下来。客户端和服务器可能会使用Java构建。
我的核心问题是:这种方法是否存在安全风险(或其他重要的)缺点?
谢谢!
这不是 全然 任意--它需要真正被识别为一个本地protobuf类型。或 被视为不透明的有效载荷。它不允许调用者在本地实例化任意类型,这在一些系统中是一个安全漏洞 (BinaryFormatter
例如,在.NET中)。) 所以,我不会因此而大惊小怪。我并不会因此而大惊小怪,因为我不知道是否有 oneof
会更合适,因为那会把事情限制在你的事情上 积极期待.