☕ Java 코드 에디터
취약한 코드
public class Account {
private int[] transactions;
// [취약] 내부 배열 참조를 그대로 반환 → 외부에서 내부 상태 변경 가능
public int[] getTransactions() {
return transactions;
}
}
💡 수정 가이드 (KISA 기준)
1. 방어적 복사
복사본을 반환.
public int[] getTransactions() {
return transactions.clone(); // 방어적 복사
}
📊 분석 결과 및 설명
🎯 목표
내부 가변 배열은 복사본으로 반환하여 캡슐화를 지킵니다.
⚠️ 현재 취약점
Private Array Exposure
내부 참조 반환으로 외부에서 상태를 변경할 수 있습니다.