I think it is better to use the interface signature, but the problem now is that the experience for old dubbo users is destructive.
Thanks, EarthChen Albumen Kevin <album...@apache.org> 于2023年4月12日周三 10:30写道: > Hi Dubbo community, > > The current serialization method used by Dubbo allows for > deserialization of any class by default (except for those in the > blacklist). However, we must consider whether to continue allowing > deserialization of any class or restrict it to only classes on > interface signatures. > > Option 1: Allow deserialization of any class Benefits: This approach > provides high ease of use for Dubbo, and users do not need to consider > how to define parameters. Disadvantages: Due to the class mechanism > under the Java system, this approach presents certain difficulties > that can lead to remote command execution (RCE) and security risks. > > Option 2: Only allow classes on interface signatures Benefits: This > approach can limit most security risks. Disadvantages: Java's generics > and parent-child class transfers are severely restricted, and users > must define specific interfaces like IDL. > > None of the following scenarios can be used: > ```java > package com.example.dubbo; > > public interface BaseResult { > > } > > public class User implements BaseResult { > public String name; > } > > public interface DemoService { > BaseResult getUser(); > Object getObject(); > } > > public class DemoServiceImpl implements DemoService { > public BaseResult listUser() { > // cast from User to BaseResult > return new User(); > } > > public Object getObject() { > // cast from User to Object > return new User(); > } > } > ``` > > ```java > package com.example.dubbo; > > public class User { > public String name; > } > > public class TestException extends RuntimeException { > } > > public interface DemoService { > User getUser(); > } > > public class DemoServiceImpl implements DemoService { > public User listUser() { > throw new TestException(); > } > } > ``` > > Please reply below this email to let us know how to proceed. > > Thanks, > Albumen Kevin >