🔎3. CORS란

CORS는 Cross-Origin Resource Sharing의 약자입니다. 다른 도메인 또는 출처에서 호스팅되는 리소스(예: API 또는 웹 리소스)에 대한 제어된 액세스를 허용하는 웹 브라우저에서 구현된 메커니즘입니다.

웹 개발 맥락에서 "출처"는 웹 페이지가 제공되는 프로토콜(예: HTTP 또는 HTTPS), 도메인 및 포트 번호의 조합을 나타냅니다. 브라우저는 "동일 출처 정책"이라는 보안 정책을 적용하여 웹 페이지가 다른 출처의 리소스를 요청하지 못하도록 제한합니다. 이 정책은 무단 데이터 액세스 또는 XSS(교차 사이트 스크립팅) 공격과 같은 잠재적인 보안 취약성을 방지하기 위해 마련되었습니다.

CORS는 동일 출처 정책을 완화하고 통제된 교차 출처 요청을 허용하는 방법을 제공합니다. 서버에서 CORS를 활성화하면 해당 리소스에 액세스할 수 있는 도메인 또는 출처를 지정할 수 있습니다. 브라우저가 출처 간 요청을 하면 요청 페이지의 출처를 포함하는 "Origin"이라는 추가 HTTP 헤더를 보냅니다. 그런 다음 서버는 이 헤더를 평가하고 적절한 CORS 헤더로 응답하여 요청의 허용 또는 거부 여부를 나타냅니다.

CORS 메커니즘에는 다음과 같은 주요 구성 요소가 포함됩니다.

CORS 요청: 웹 페이지가 다른 출처의 리소스를 요청하면 브라우저가 CORS 요청을 보냅니다. 이 요청에는 페이지의 출처를 나타내는 "Origin" 헤더가 포함되어 있습니다.

CORS 응답: CORS 요청을 수신하는 서버는 "Origin" 헤더를 평가하고 요청이 허용되는지 또는 거부되는지를 나타내는 CORS 특정 헤더가 포함된 응답을 생성합니다. 헤더에는 일반적으로 허용된 출처를 지정하는 "Access-Control-Allow-Origin"과 교차 출처 요청에 허용되는 HTTP 메서드(GET, POST 등)를 정의하는 "Access-Control-Allow-Methods"가 포함됩니다.

실행 전 요청: 사용자 지정 헤더 또는 단순하지 않은 HTTP 메서드(예: PUT, DELETE)가 있는 요청과 같은 특정 유형의 요청에는 실행 전 요청이 필요합니다. 실행 전 요청은 HTTP OPTIONS 메서드를 사용하여 서버에서 실제 요청을 허용하는지 확인합니다. 서버는 허용된 메서드, 헤더 및 기타 구성 세부 정보를 나타내는 CORS 헤더로 응답합니다.

CORS를 구현함으로써 웹 개발자는 필요한 경우 교차 출처 요청을 활성화하면서 다른 출처에서 호스팅되는 리소스에 대한 액세스를 제어하고 보호할 수 있습니다. 이 메커니즘은 여러 도메인의 API 및 리소스에 의존하는 웹 애플리케이션을 구축하는 데 중요한 역할을 합니다.

Last updated