Refiriéndose a este CWE-496 , menciona que debido a que la aplicación asigna datos públicos a un matriz privada es equivalente a dar acceso público a la matriz.
Esto no está claro para mí porque, normalmente, antes de que pueda usar el objeto, debemos declararlo. Por ejemplo:
User user = new User();
Voy a hacer dos suposiciones y me corregirá si me equivoco.
- Cada
new Object()creará una instancia diferente - Dentro del objeto Usuario, hay una matriz privada
userRolesy una pública definidor llamadosetUserRoles(String[] userRoles)
Mi pregunta es, ya que el objeto declarará nuevas instancias cada vez, ¿cómo ocurre la situación definida en CWE?
Por ejemplo:
¿Por qué el user.setUserRoles() en una segunda solicitud sobrescribirá los valores de la variable userRoles en la primera solicitud o los valores de la variable userRoles en otras páginas?