WEB SECURITY

NestJS 보안 축

CORS, CSRF, XSS는 같은 보안 문제가 아니라 요청 출처, 상태 변경, 화면 출력의 실패를 각각 막는다.

구분
CORS
CSRF
XSS
막는 실패
허용하지 않은 Origin에서 API를 호출
로그인 세션으로 의도치 않은 상태 변경 요청
입력이 스크립트로 실행되어 쿠키나 토큰 노출
Nest 위치
app.enableCors()의 origin, method, credentials
토큰 검증, SameSite 쿠키, Origin 검사
출력 인코딩, 입력 검증, CSP 헤더
확인 신호
브라우저 preflight와 응답 헤더가 의도한 출처만 허용
POST, PATCH, DELETE 같은 변경 요청에 검증값 필요
저장된 텍스트가 HTML로 실행되지 않고 문자로 표시
검토 순서 출처 허용 범위를 좁히고, 상태 변경 요청을 보호한 뒤, 화면으로 나가는 입력을 인코딩한다.
운영 기준 설정은 환경별로 다르지만 “허용 출처, 토큰 검증, 출력 인코딩”은 항상 함께 점검한다.