네트워크

CORS(feat.SOP)

Doityoo 2022. 12. 7. 17:12

SOP

SOP은 Same-Origin Policy의 줄임말(동일 출처 정책)

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

 

Origin?

: 프로토콜  + 호스트 + 포트 조합으로 되어 있으며, 이 중 하나라도 다르면동일한 출처로 보지 않는다.

 

  • 프로토콜이 다를 경우
    http://
    https://
  • 호스트가 다를 경우
    www.naver.com
    home.naver.com
  • 포트가 다를 경우
    http://www.naver.com:81
    http://www.naver.com:80

그렇다면 SOP는 왜 생긴건가?

: 프로토콜 + 호스트 + 포트를 나눠 해로울 수 있는 문서를 분리함으로써 공격받을 수 있는 경로를 줄여줌
하지만 다른 리소스를 사용할 경우가 많다(외부 API 같은...)
그래서 CORS가 생겨남

 

CORS

Cross-Origin Resource Sharing(교차 출처 리소스 공유)
: 서로다른 origin이더라도 서로 리소스를 공유할수 있도록 해준다는...!

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

브라우저는 SOP를 통해 기본적으로 다른출처의 리소스 공유를 막지만, CORS를 사용하면 접근 권한을 얻게 되는 것.

 

CORS가 없다면?

SOP(단일 출처 정챙)으로 인해 다른 origin에 접근할 수 없게 된다.

공공 API같은 외부 API를 가져와 사용하려고 할때 origin이 다르기 때문에 CORS에러가 난다.

이를 CORS를 사용해서 서로 다른 출처가 접근할수 있도록 해준다.

 

 

 

이후에 CORS가 어떻게 동작하고, 설정할 수 있는지 정리하기로...!