CORS headers

CORS 헤더는 브라우저 노출, 인증정보, 캐시 키를 함께 맞춘다

Allow-Origin만 맞추면 끝나지 않는다. 쿠키를 보낼지, JavaScript가 읽을 헤더를 노출할지, CDN이 Origin별로 분리할지도 같이 정해야 한다.

노출 허용Access-Control-Allow-Origin은 응답을 읽을 수 있는 출처를 정한다.
인증정보credentials=true면 * Origin을 쓸 수 없고 쿠키 속성도 맞아야 한다.
캐시 분리Origin별 응답이 다르면 Vary: Origin으로 캐시 키를 분리한다.
헤더역할확인할 점
Allow-Origin응답 공개 대상* 또는 구체 Origin 중 하나로 명확히
Allow-Credentials쿠키/인증정보 포함SameSite=None; Secure와 함께 검토
Expose-HeadersJS가 읽을 수 있는 응답 헤더Location, RateLimit 같은 커스텀 헤더 노출
Max-Agepreflight 결과 캐시긴 캐시는 정책 변경 반영을 늦춘다

운영 기준: CORS는 보안 경계라기보다 브라우저 공개 정책이다. 인증과 캐시는 별도 정책으로 같이 설계해야 한다.