Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java protobuf有任何字段的安全问题吗?_Java_Security_Polymorphism_Protocol Buffers - Fatal编程技术网

Java protobuf有任何字段的安全问题吗?

Java protobuf有任何字段的安全问题吗?,java,security,polymorphism,protocol-buffers,Java,Security,Polymorphism,Protocol Buffers,所以 我正在考虑在服务到服务(通过网络)请求对象中使用Any字段: message ServiceRequest { google.protobuf.Any envelope; } 客户机将发送打包在信封字段中的任意数据,服务器将根据未打包的类型信息向请求处理程序分派数据(实现一种多态分派)。类型无法识别的请求将被记录/删除。客户端和服务器很可能使用Java构建 我的核心问题是:这种方法是否存在安全风险(或其他重大缺陷) 谢谢 它并不是完全任意的-它需要实际被识别为本地protobuf类

所以

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

message ServiceRequest {
   google.protobuf.Any envelope;
}
客户机将发送打包在
信封
字段中的任意数据,服务器将根据未打包的类型信息向请求处理程序分派数据(实现一种多态分派)。类型无法识别的请求将被记录/删除。客户端和服务器很可能使用Java构建

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


谢谢

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

它不是完全任意的-它实际上需要被识别为本地protobuf类型,或者被视为不透明的负载。它不允许调用方在本地实例化任意类型,这在一些系统中是一个安全漏洞(
BinaryFormatter
in.NET)。因此:我不会对此感到非常震惊,因为我想知道一个<代码>之一的<代码>是否更合适,因为它将事情限制在你积极期望的事情上。

我很高兴你提到其中一个-这是我正在考虑的另一种方法。它肯定会提高类型安全性。这里是我正在努力解决的问题:多个客户端服务将这些请求用于不同的目的,并且几乎肯定会有不同(尽管相关)的服务响应这些请求。oneof字段有可能成为厨房水槽,并充当无关请求之间的耦合点。更不用说跨组件依赖性的增加了。@peterlitig
Any
也是同一个厨房水槽——只是:你捂住眼睛,假装它不在那里;听起来你真正想要的是更细粒度地划分服务。我很高兴你提到了其中一种——这是我正在考虑的另一种方法。它肯定会提高类型安全性。这里是我正在努力解决的问题:多个客户端服务将这些请求用于不同的目的,并且几乎肯定会有不同(尽管相关)的服务响应这些请求。oneof字段有可能成为厨房水槽,并充当无关请求之间的耦合点。更不用说跨组件依赖性的增加了。@peterlitig
Any
也是同一个厨房水槽——只是:你捂住眼睛,假装它不在那里;听起来您真正想要的是更细粒度地划分服务