요청이 들어오고 응답이 나갈 때 확인 지점이 다르다
출처, 쿠키, 상태 변경, Body 입력, 출력, 헤더를 순서대로 보면 CORS/CSRF/XSS 누락을 줄일 수 있다.
1
요청 출처
허용 origin, methods, allowedHeaders만 응답 노출 대상으로 둔다.
2
세션 쿠키
SameSite, Secure, HttpOnly를 확인한다.
3
쓰기 요청
POST/PATCH/DELETE는 CSRF 토큰을 요구한다.
4
Body 입력
DTO 검증과 whitelist로 예상 필드만 받는다.
5
출력
기본은 출력 인코딩, HTML 허용 시에만 sanitizer를 쓴다.
6
응답 헤더
helmet과 CSP로 브라우저 실행 범위를 제한한다.
통과 신호
허용 출처, 쓰기 요청 토큰, DTO 검증, 출력 인코딩이 모두 보인다
각 경계에 방어선과 확인 값이 남아야 한다.
위험 신호
origin 전체 허용, 자동 첨부 쿠키, 검증 없는 body, 직접 HTML 출력
하나라도 남으면 CORS/CSRF/XSS 중 다른 층에서 사고가 날 수 있다.