CORS와 보안 관련 HTTP 헤더

프론트엔드와 API 서버 분리 환경에서 필수적인 CORS 설정과 웹 보안을 위한 주요 HTTP 헤더 설정 방법

CORS (Cross-Origin Resource Sharing)

동일 출처 정책 (Same-Origin Policy)

  • 웹 브라우저의 보안 정책으로 특정 출처에서 다른 출처의 리소스 접근을 제한

  • 출처는 Protocol, Host, Port의 조합으로 결정

CORS 동작 방식

  • 단순 요청: GET, HEAD, POST 메서드와 기본 헤더만 사용하는 요청

  • 예비 요청: 단순 요청 조건을 벗어나는 경우 OPTIONS 메서드로 먼저 확인

  • 인증 정보 포함 요청: 쿠키, 인증 헤더 등을 포함하며 양쪽 모두 특별한 설정 필요

Django CORS 설정

보안 HTTP 헤더

HSTS (Strict-Transport-Security)

  • HTTP 연결을 강제로 HTTPS로 전환하여 중간자 공격 방지

CSP (Content-Security-Policy)

  • 신뢰할 수 있는 콘텐츠 소스를 지정하여 XSS 공격 방어

  • django-csp 라이브러리 사용 권장

X-Content-Type-Options

  • 브라우저의 MIME 타입 스니핑 공격 방지

X-Frame-Options

  • 다른 사이트의 iframe 내부 렌더링을 막아 Clickjacking 공격 방지

Referrer-Policy

  • 다른 출처로 이동 시 전송되는 Referer 헤더 정보 제어

Last updated