WEB SECURITY

NestJS 보안은 요청 출처, 사용자 의도, 입력 실행 가능성을 나눠 막는다

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

CORS

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

app.enableCors({ origin })

CSRF

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

token + SameSite

XSS

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

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