AZ Tools

CORS 헤더 빌더

네트워크

브라우저 크로스-오리진 요청 만족을 위해 서버가 보낼 응답 헤더 빌드. Allow-Origin·Allow-Methods·Allow-Headers·Expose-Headers·Allow-Credentials·Max-Age·Vary: Origin 힌트 포함. 흔한 함정 플래그: *와 credentials 조합(브라우저 차단), Origin: null 수용(공격자 위조 가능), 비현실적으로 긴 preflight 캐시.

프리셋
Allow-Methods
응답 헤더
Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Allow-Credentials: true
Access-Control-Max-Age: 600
Vary: Origin

preflight OPTIONS와 실제 요청 응답 모두에 적용. Origin 에코 시 엣지 캐시엔 Vary: Origin 필요.

사용법

  1. 시나리오에 맞는 프리셋에서 시작.
  2. 오리진 설정(완전 공개는 *, credential API는 서버 측에서 요청 Origin 에코).
  3. 엔드포인트가 실제 받는 메서드·헤더만 선택 — 좁을수록 안전.
  4. 서버·엣지 워커·프레임워크 미들웨어에 헤더 복사.

자주 묻는 질문

*와 credentials 같이 쓸 수 있음?
안 됨. fetch 스펙은 Access-Control-Allow-Origin: *와 Access-Control-Allow-Credentials: true 페어링한 응답 거부. credentials 빼거나, 허용 목록 검증 후 실제 요청 Origin을 서버 측에서 에코.
Vary: Origin 권장 이유?
Origin을 Allow-Origin에 에코하면, 하위 캐시는 저장된 응답을 요청의 Origin 헤더로 키잉해야 함; 아니면 한 사이트의 CORS 응답이 다른 사이트 요청에 서빙될 수 있음. Vary: Origin이 캐시에 해당 헤더로 키잉하라고 알림.

관련 도구