WEB SECURITY

NestJS 보안 축

CORS, CSRF, XSS는 이름이 비슷해 보여도 방어 지점이 다르다. 먼저 공격 표면을 분리해야 설정이 흔들리지 않는다.

CORS

브라우저가 다른 Origin 요청을 허용할지 판단한다. API 허용 출처와 credentials를 좁힌다.

app.enableCors({ origin })

CSRF

로그인 세션을 악용한 의도치 않은 요청을 막는다. 토큰, SameSite 쿠키, Origin 검증을 함께 본다.

token + SameSite

XSS

입력이 스크립트로 실행되지 않게 한다. 출력 인코딩, CSP, 검증된 템플릿 사용이 핵심이다.

encode + CSP
검토 순서: 출처 정책을 좁히고, 상태 변경 요청을 보호한 뒤, 화면에 다시 나가는 입력을 인코딩한다.