Di seguito è riportato il codice che rende accessibile un campo privato di una classe utilizzando il metodo setAccessible
di java reflection e ottenendo il valore del campo utilizzando il metodo java.lang.reflect.get, infine l'impostazione è in un altro oggetto.
A a = new A();
Field[] field = b.getClass().getDeclaredFields();
for(Field f : field) {
f.setAccessible(true);
Object fval = f.get(b);
if(fval != null){
a.set(f.getName(), fval);
}
}
In che modo il codice f.get(b)
causa un rischio per la sicurezza, supponendo che b
provenga da una fonte non attendibile?