CORS

2025. 9. 8. 20:23Cloud Native

    목차
반응형

Cross-Origin-Resource-Sharing

CORS(Cross-Origin Resource Sharing)는 웹 브라우저에서 구현된 보안 기능으로, 한 도메인(출처)에서 로드된 웹 페이지가 다른 도메인(출처)의 리소스(예: API, 이미지, 스크립트 등)를 요청할 수 있도록 허용하는 메커니즘입니다.

왜 필요한가?

웹 브라우저는 기본적으로 Same-Origin Policy(SOP)라는 규칙을 따르는데, 이는 동일한 출처(프로토콜, 호스트, 포트가 모두 같은 경우)에서만 리소스를 공유할 수 있도록 제한합니다. 이는 크로스-사이트 스크립팅(XSS) 같은 보안 공격을 방지하기 위함입니다.
하지만 현대 웹 애플리케이션에서는 API 호출이나 외부 리소스 사용이 빈번하므로, CORS를 통해 서버가 특정 출처의 요청을 허용할 수 있게 합니다.

어떻게 작동하나?

클라이언트(브라우저)가 다른 출처의 리소스를 요청할 때, 서버는 HTTP 응답 헤더(예: Access-Control-Allow-Origin)를 통해 허용 여부를 지정합니다.

예: Access-Control-Allow-Origin: * (모든 출처 허용) 또는 Access-Control-Allow-Origin: https://example.com (특정 출처만 허용).

복잡한 요청(예: POST 메서드나 커스텀 헤더 사용 시)에는 Preflight Request (OPTIONS 메서드)가 먼저 보내져 서버의 허가를 확인합니다.

CORS 오류가 발생하면 브라우저 콘솔에 "No 'Access-Control-Allow-Origin' header is present on the requested resource" 같은 메시지가 나타납니다. 개발 시 서버 측에서 적절히 설정해야 합니다.

반응형