CORS 이해하기

Jason Moon·2022년 7월 28일
0

프로젝트 중 날 힘들게 한 CORS에 대해 정리한 글

CORS란?

Cross-Origin Resource Sharing의 약자로 우리말로 교차 출처 리소스 공유이다.
말이 어려운데 추가 HTTP 헤더를 이용해 한 출처(origin)에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제이다.

여기서 출처(origin)란 도메인, 프로토콜, 포트이다.

CORS가 왜 필요한가?

보안 상의 이유로 브러우저는 요청을 보내는 출처와 받는 출처가 다를 경우 이를 제한한다. 예를들어 example.com에서 hi.com으로 HTTP요청을 보낼 경우 보안 상의 이유로 브라우저가 이 요청을 제한한다.
웹 애플리케이션은 자신의 출처와 동일한 리소스만 불러올 수 있고, 다른 출처의 리소르를 불러오려면 그 출처에서 올바른 CORS 헤더를 포함한 응답을 반환해야 한다.

여기서 SOP에 대해 잠시 알아보자.

SOP(Same-Origin Policy)

SOP은 2011년, RFC 6454에서 처음 등장한 보안 정책으로 '같은 출처에서만 리소스를 공유할 수 있다'라는 규칙을 가진 정책이다.
웹이라는 오픈스페이스라는 환경 특성상 무작정 SOP만 지키라고 할 수 없다. 그래서 예외 조항을 둔게 'CORS 정책을 지킨 리소스 요청'이다.

우리가 다른 출처로 리소스를 요청한다면 SOP 정책을 위한한 거이고, SOP 예외 조항인 CORS 정책까지 지키지 않으면 다른 출처의 리소스를 사용할 수 없게 된다.

📘참고

CORS는 왜 이렇게 우리를 힘들게 하는걸까?
교차 출처 리소스 공유 (CORS)

profile
어려워 보여도 시간을 들여서 해보면 누구나 할 수 있는 일이다

0개의 댓글