CORS

남성윤·2022년 8월 11일
0

Code States 학습

목록 보기
31/66

SOP


CORS에 대해 알아보기 전에, CORS가 필요하게 된 배경인, SOP에 대해 먼저 알아보고 가도록 하겠다.

SOP(Same-Origin Policy), 동일 출처 정책은

같은 출처의 리소스만 공유가 가능하다.

라는 정책으로, 여기서 말하는 출처는 프로토콜 호스트 포트의 조합이다. 이중 하나라도 다르면 동일한 출처로 보지 않지만, 이 세가지가 모두 같다면, 동일 출처로 취급된다.

그렇다면 이 SOP는 어째서 생겨났는가? 잠재적으로 해로울 수 있는 문서를 분리함으로서, 공격받을 수 있는 경로를 줄이는것이다.

로그인해서 서비스를 이용하고 있다고 해봅시다. 서비스 이용중이 아니더라도 로그아웃을 깜빡했거나 자동 로그인 기능으로 인해 브라우저에 로그인 정보가 남아있을 수도 있을 것입니다.

그 상태에서 여러분의 로그인 정보를 노리는 코드가 있는 다른 사이트에 방문하게 된다면? 해커는 여러분의 로그인 정보를 이용해서 네이버에서 사용할 수 있는 모든 기능을 이용할 수 있게 됩니다. 나도 모르는 사이에 내 계정으로 블로그나 카페에 좋지 않은 글을 올리게 될 수도, 수 천 명에게 스팸 메일을 보낼 수도 있는 것입니다.

SOP이 있었다면 어땠을까요? SOP은 애초에 다른 사이트와의 리소스 공유를 제한하기 때문에 로그인 정보가 타 사이트의 코드에 의해서 새어나가는 것을 방지할 수 있습니다. 이러한 보안상 이점 때문에 SOP은 모든 브라우저에서 기본적으로 사용하고 있는 정책입니다.

그런데, 다른 출처의 리소스를 사용하게 될 일은 너무나도 많습니다.

CORS


이런 상황에서 CORS를 사용하게 된다.

CORS(Cross-Origin Resource Sharing), 교차 출처 리소스 공유 는

CORS는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제이다.

즉, 브라우저는 기본적으로는 SOP로 다른 출처의 리소스 공유를 막고있지만, CORS를 사용해 접근 권한을 얻어 다른 출처의 리소스에 접근할 수 있는 것이다.

profile
안녕하세요, Blog 2022.06 ~

0개의 댓글