CORS (Cross-Origin Resource Sharing)

Jemin·2023년 8월 22일
0

Computer Science

목록 보기
30/31
post-thumbnail

CORS란

CORS(Cross-Origin Resource Sharing)는 웹 애플리케이션에서 다른 출처(도메인, 프로토콜, 포트)의 리소스를 요청하거나 공유하는 것을 관리하기 위한 웹 보안 메커니즘이다.

웹 보안을 위해 브라우저에서 도입된 정책으로, 동일 출처 정책(Same-Origin Policy)에 따라 다른 도메인의 리소스에 접근하는 것을 기본적으로 금지한다. 그러나 CORS를 통해 특정 도메인에서 다른 도메인의 리소스에 접근할 수 있는 권한을 부여할 수 있다. 이를 통해 웹 애플리케이션 간의 데이터 공유와 통신이 가능해진다.

CORS의 목표

  • 보안 강화: 다른 도메인의 리소스에 무작위로 접근하는 것을 막아 웹 애플리케이션의 보안을 강화한다.

  • 애플리케이션의 상호 운용성: 다른 도메인의 서비스를 활용하거나 제공하는 웹 애플리케이션 간의 상호 작용을 가능하게 한다.

CORS의 동작 방식

  1. 요청의 출처 확인: 브라우저는 요청을 보낼 때 해당 요청이 어떤 출처에서 시작되었는지 확인한다.

  2. 사전 요청(Preflight Request): 브라우저는 실제 요청 전에 사전 요청을 보낸다. 이 사전 요청은 실제 요청의 메소드, 헤더 등을 미리 확인하기 위한 것이다.

  3. 응답 헤더 검사: 서버는 응답에 CORS 관련 헤더를 포함시키며, 이 헤더를 통해 브라우저는 엑세스를 허용할지 여부를 판단한다.

CORS의 헤더는 주로 다음과 같다.

  • Access-Control-Allow-Origin: 허용된 출처를 지정한다.
  • Access-Control-Allow-Methods: 허용된 HTTP 메서드를 지정한다.
  • Access-Control-Allow-Headers: 허용된 헤더를 지정한다.
  • Access-Control-Allow-Credentials: 자격 증명(Credentials)을 사용할 수 있는지 여부를 지정한다.
  • Access-Control-Expose-Headers: 브라우저가 엑세스할 수 있는 헤더를 지정한다.

서버는 이러한 헤더를 통해 브라우저에게 요청을 허용할지 여부를 알려주며, 브라우저는 이를 확인하여 요청의 허용 여부를 결정한다. CORS 정책은 보안과 상호 운용성을 균형있게 조절하기 위한 중요한 웹 보안 메커니즘이다.

profile
경험은 일어난 무엇이 아니라, 그 일어난 일로 무엇을 하느냐이다.

0개의 댓글