REQUEST DEFENSE

보안은 컨트롤러 한 곳이 아니라 요청 경로 전체에 배치합니다.

Helmet, ValidationPipe, Guard, 최소 권한, 예외 필터가 각각 다른 실패를 막습니다. 한 단계가 약하면 다음 단계 로그로 흔적을 남겨야 합니다.

차단잘못된 입력과 권한 없는 접근은 초기에 거절
축소DB 계정, API 키, 세션 권한은 필요한 범위만
기록상세 원인은 로그에, 응답은 제한된 메시지로
1 Header 브라우저 정책 먼저 고정

`helmet`으로 CSP, HSTS, frameguard 같은 기본 보안 헤더를 적용합니다.

응답 표면 축소
2 DTO 입력값 모양을 서버에서 확정

`whitelist`, `forbidNonWhitelisted`, `transform`으로 DTO 밖 값을 밀어냅니다.

인젝션 후보 제거
3 Guard 신원과 역할을 라우트 앞에서 확인

JWT, 세션, Role 조건은 핸들러 실행 전에 실패하도록 둡니다.

인가 누락 방지
4 Secret 외부 자격 증명은 최소 권한

DB 사용자와 API 키는 서비스가 실제 쓰는 작업만 허용합니다.

피해 범위 제한
5 Filter 에러는 숨기고 흔적은 남김

클라이언트에는 일반 메시지, 서버 로그에는 추적 가능한 상세 정보를 남깁니다.

정보 노출 방지
검사는 클라이언트만 믿지 않기

프론트 검증은 편의 기능이고 보안 경계는 서버입니다.

보안 패치는 운영 루틴

`npm audit`, Dependabot, Snyk 결과를 릴리스 흐름에 묶습니다.

로그도 민감정보입니다

토큰, 비밀번호, 개인정보가 로그에 남지 않게 필터링합니다.