Riferendosi a questo CWE-496 , si accenna che a causa dell'applicazione che assegna dati pubblici a un array privato equivale a fornire l'accesso pubblico alla matrice.
Questo non mi è chiaro perché di solito prima di poter usare l'oggetto, dobbiamo dichiarare l'oggetto. Ad esempio:
User user = new User();
Ho intenzione di fare due ipotesi e correggermi se sbaglio.
- Ogni
new Object()
creerà un'istanza diversa - Oggetto Utente interno, c'è un array privato
userRoles
e un pubblico setter chiamatosetUserRoles(String[] userRoles)
La mia domanda è, dato che l'oggetto dichiarerà ogni volta nuove istanze, come si verifica la situazione definita in CWE?
Ad esempio:
Come mai user.setUserRoles()
in una seconda richiesta sovrascriverà i valori della variabile userRoles
nella prima richiesta o i valori della variabile userRoles
nelle altre pagine?