NestJS · Security

보안 모범 사례의 적용 지점

NestJS 보안은 guard 하나로 끝나는 장치가 아니라, 입력 검증, 인증, 권한, 헤더, 의존성 취약점, 배포 설정이 서로 다른 위치에서 맞물리는 구조다.

01

입력면 차단

ValidationPipe와 DTO로 예상하지 않은 필드를 제거하고 타입을 검증한다.

02

요청 신원

Passport strategy나 custom guard로 사용자 컨텍스트를 만든다.

03

행동 권한

role과 resource ownership을 handler 또는 policy 계층에서 판정한다.

04

운영 점검

보안 헤더, CORS 허용 출처, dependency audit 결과를 배포 전 확인한다.

ValidationPipe
입력 구조 제한 whitelist와 forbidNonWhitelisted로 불필요 필드 차단
transform 사용 범위 확인
Guard
role·ownership 권한 판정 인증 여부와 권한 정책을 handler 앞에서 확인
표시 UI와 별도
Helmet
보안 헤더 CSP, frameguard, content-type sniffing 방지
GraphQL playground와 충돌 점검
Audit
취약점 추적 npm audit, SCA 도구, 이미지 스캔
패치 우선순위 필요

DTO · 권한 · CORS 점검

DTO 외부 입력이 any로 서비스까지 내려가지 않는다.
권한 관리자 role만이 아니라 리소스 소유권도 확인한다.
CORS 운영에서 wildcard origin과 credential 조합을 피한다.
스캔 패키지와 컨테이너 이미지 취약점 결과가 배포 판단에 반영된다.