7. 정리
- 사내 시스템은 외부 침투보다 인가 누락(IDOR), 경로 탐색, 업로드 검증 부족으로 더 자주 사고가 납니다.
- MyBatis 는
#{}로 값을 바인딩하고,${}는 화이트리스트를 거친 컬럼명·테이블명에만 씁니다. - 경로 탐색은
normalize()후 기준 폴더startsWith검사로, 업로드는 확장자와 매직 바이트를 함께 검사해서 막습니다. - 인가는 컨트롤러가 아니라 서비스 계층에서 소유자 검사로, 요청 바인딩은 엔티티가 아니라 전용 DTO 로 분리합니다.
- 에러 응답과 로그는 항상 07 레슨 에러 규격과 10 레슨 로깅 기준을 따라 민감 정보를 감춥니다.
- 배포 전에는 2.15 점검표 15줄을 그대로 체크리스트로 써서 마지막으로 훑어봅니다.