Weaknesses of type CWE-495

1 result

Exposição de estrutura de dados privada através de método público

Um método público retorna uma referência direta a uma estrutura de dados privada (lista, mapa, objeto) da classe, permitindo que o chamador modifique ou inspecione dados internos que deveriam estar protegidos. O encapsulamento é quebrado porque não há cópia ou proteção na devolução.

Example

Uma classe com um ArrayList privado de usuários expõe um método público que retorna esse ArrayList diretamente. O código externo pode chamar remove() ou add() na lista retornada, alterando o estado interno da classe sem passar por validações ou logs de auditoria.

How to mitigate

Retorne uma cópia defensiva (Collections.unmodifiableList()) ou clone do objeto, nunca a referência original. Alternativamente, devolva apenas os dados necessários em um objeto imutável ou valor primitivo, mantendo a estrutura interna privada e controlada.