파트너포탈 보안·XSS·비즈니스로직 취약점 종합 수정
목차
파트너포탈 보안/비즈니스로직/XSS 종합 수정 (23개 파일)
파트너포탈 보안/비즈니스로직/XSS 종합 수정 (23개 파일) 버그를 수정했음.
원인 분석
로직 일부가 엣지케이스를 처리하지 못하고 있었음. 실제 운영 데이터에서 발생한 케이스로 재현했음.
재현 조건
특정 조건에서 의도치 않은 동작 확인.
수정 내용
// 수정 전: 엣지케이스 미처리
public void process(Data data) {
// 정상 케이스만 처리
execute(data.getValue());
}
// 수정 후: 방어 처리 추가
public void process(Data data) {
if (data == null || data.getValue() == null) {
log.warn("처리 불가 데이터: {}", data);
return;
}
execute(data.getValue());
}
검증
수정 후 영향 범위(6개 파일)에서 정상 동작을 확인했음.
재발 방지
유사 패턴에 방어 코드를 추가하고 코드 리뷰 시 체크하기로 했음.
보안 고려사항
이번 변경에서 보안 측면을 함께 검토했음.
입력 검증: 외부에서 들어오는 파라미터는 항상 서버에서 재검증함. 클라이언트 검증만으로는 부족함.
권한 확인: 요청자가 해당 리소스에 접근 권한이 있는지 확인했음. 타인의 데이터를 조회/수정하는 API는 소유자 확인이 필수임.
// 소유자 확인 예시
if (!resource.getOwnerId().equals(loginUserId)) {
throw new AccessDeniedException("접근 권한이 없습니다");
}
로그: 민감한 데이터(금액, 개인정보)는 로그에 마스킹해서 남겼음.
다음
댓글 0
첫 댓글 달아줘.