Cross-Origin Resource Sharing (CORS)
개요
CORS (Cross-Origin Resource Sharing) Policy는 서버의 리소스가 서로 다른 출처에서 어떻게 접근될 수 있는지를 제어합니다. 이는 서로 다른 도메인에 호스팅된 API에 의존하는 웹 애플리케이션에 매우 중요합니다. CORS 정책은 허용된 메서드, 헤더, 자격 증명 및 캐싱 동작을 정의하여 안전한 교차 출처 요청을 보장합니다.
구성 세부정보
CORS Policy은 접근 및 보안을 제어하는 여러 주요 설정을 포함합니다:
Field | Description | Example Values | Notes |
---|---|---|---|
methods | 허용된 HTTP 메서드를 정의합니다. | GET, HEAD, PUT, PATCH, POST, DELETE, OPTIONS, TRACE, CONNECT | 모든 메서드를 허용하려면 *을 사용하세요. |
origins | 허용된 출처(도메인)를 지정합니다. | https://www.example.com:8000, https://www.google.com:80 | 모든 출처를 허용하려면 *을 사용하세요. |
allowHeaders | 허용된 요청 헤더를 나열합니다. | x-apim-key, Content-Type | 모든 헤더를 허용하려면 *을 사용하세요. |
exposedHeaders | 클라이언트에 노출되어야 하는 헤더를 정의합니다. | Content-Length, X-My-Custom-Header, X-Another-Custom-Header | 모든 헤더를 노출하려면 *을 사용하세요. |
allowCredential | 자격 증명(쿠키, 인증)이 허용되는지를 결정합니다. | true / false | true인 경우, origins 또는 allowHeaders에서 *을 사용할 수 없습니다. 기본값: false. |
maxAge | 프리플라이트 요청이 캐시되는 기간(초)입니다. | 3600 | 기본값: 3600 (1시간). |
참고:
- 보안 위험을 방지하기 위해 origins에서 사용하는 것을 피하세요.
- 인증 자격 증명이 필요하지 않은 경우 allowCredential을 false로 설정하세요.
- exposedHeaders에서 필요한 헤더만 노출하세요.
- maxAge을(를) 증가시켜 불필요한 사전 비행 요청을 줄입니다.
- 허용된 메서드와 헤더를 필요한 것만으로 제한합니다.