关于java反射的安全问题
- Java code
public class User { private String name; public User() { }}就这么一个类,name没有set方法,利用反射可以设值
- Java code
protected final void injectField(Object source, String fieldName, Object fieldValue) { try { Field field = source.getClass().getDeclaredField(fieldName); field.setAccessible(true); field.set(source, fieldValue); } catch (Exception e) { throw new IllegalStateException(e); } }这样破坏了user的安全性了么?
[解决办法]
是可以这么用
但是可以在jvm的启动参数里面禁止这个
安全性还是可以保障的