본문 바로가기
VOCA/ComputerScience

CORS (Cross-Origin Resource Sharing)

by BAYABA 2021. 9. 29.
  1. 개인 공부 목적으로 작성한 글입니다.
  2. 아래 출처를 참고하여 작성하였습니다.

목차

  1. CORS 란?
  2. 왜 CORS가 필요한가?
  3. '동일한 출처'란?
  4. 결론

1. CORS 란?

  1. CORS(교차 출처 리소스 공유)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처인 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 방식입니다.
  • 웹 애플리케이션은 요청하고자 하는 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다를 때 CORS HTTP 요청을 실행합니다.

2. 왜 CORS가 필요한가 ?

  1. 보안상의 이유로, 브라우저는 스크립트에서 시작한 교차 출처 HTTP 요청을 제한합니다.
  • 예를 들어, XMLHttpRequet와 Fetch API는 동일 출처 정책을 따릅니다.
  • 동일 출처 정책은 잠재적으로 해로울 수 있는 문서를 분리함으로써 공격받을 수 있는 경로를 줄여줍니다.

3. '동일한 출처'란?

  1. 아래 세 가지 조건이 모두 같아야 동일한 출처라고 말합니다.
  • 두 URL의 프로토콜
  • 두 URL의 포트번호
  • 두 URL의 host 주소


4. 결론

  1. 웹 애플리케이션은 기본적으로 자신의 출처와 동일한 리소스만 불러올 수 있으며, 다른 출처의 리소스를 불러오려면 그 출처(서버)에서 올바른 CORS 헤더를 포함한 응답값을 반환해줘야 합니다.
  • 웹 애플리케이션의 요청이 다른 출처로 보내는 요청이라면, 요청을 받은 서버에서 HTTP Header에 Access-Control-Allow-Origin값을 Response에 포함해 돌려줍니다.
  • 서버로부터 받은 Access-Control-Allow-Origin 값에 웹 애플리케이션의 출처가 들어있다면 이 요청은 유효한 요청입니다.
  • 서버로부터 받은 Access-Control-Allow-Origin 값에 웹 애플리케이션의 출처가 없다면 이 요청은 제한됩니다.

출처

  1. 교차 출처 리소스 공유 (CORS)
  2. 동일 출처 정책

'VOCA > ComputerScience' 카테고리의 다른 글

API Gateway  (0) 2021.09.16