CORS(교차 출처 리소스 공유)

Ham S. J·2022년 12월 3일
0

CORS(Cross-Origin Resource Sharing)

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

보안 상의 이유로, 브라우저는 스크립트에서 시작한 교차 출처 HTTP 요청을 제한한다.
예를 들어, XMLHttpRequest와 Fetch API는 동일 출처 정책을 따르기에,
이 API를 사용하는 웹 애플리케이션은 자신의 출처와 동일한 리소스만 불러올 수 있으며,
다른 출처의 리소스를 불러오려면 그 출처에서 올바른 CORS 헤더를 포함한 응답을 반환해야 한다.

CORS 체제는 브라우저와 서버 간의 안전한 교차 출처 요청 및 데이터 전송을 지원하며,
최신 브라우저는 XMLHttpRequest 또는 Fetch와 같은 API에서 CORS를 사용하여
교차 출처 HTTP 요청의 위험을 완화한다.

출처 : MDN web docs : CORS


SOP(Same Origin Policy, 동일 출처 정책)라는 브라우저의 기본적인 보안 관련정책에 의해 브라우저에서는 같은 Origin 내에서만 HTTP 요청을 주고 받을 수 있다.
이러한 이유로 차단된 요청을 주고 받을 수 있게 해주는 것이 CORS이며,
이는 브라우저의 정책으로 서버간의 통신에는 적용되지 않는 특징이 있다.

CORS의 기본적인 동작 원리
브라우저가 다른 Origin으로 요청을 보낼 때 Origin헤더에 자신의 Origin을 설정하고,
서버로부터 응답을 받으면 Access-Control-Allow-Origin 헤더에 설정된 Origin 목록에
요청에 함께 설정한 Origin 헤더값이 포함돼있는지 검사하는 것으로 브라우저가
'검사하는 과정' 이다.

출처 : IT 엘도라도 블로그 - by피그브라더 : CORS

이해하기 아주 쉽게, 그리고 정확한 내용이 다음 블로그에 더 자세하게 서술돼있어
꼭 읽어보길 모두에게 추천드린다! 블로그의 글이 다 너무 좋아서 많이 참고하고 있는 곳이다.
해당 블로그를 참고하여 글을 작성하였다

profile
즐겁게 귀엽게 코딩합시다 !

0개의 댓글