CORS

yeon·2021년 5월 16일
0

CORS란?

Cross-Origin Resource Sharing

교차(다른) 출처 자원 공유

CORS 이슈: 클라이언트와 서버의 Origin이 다를 때 발생하는 이슈

Request에 Origin이라는 헤더와 Response의 Access-Control-Allow-Origin이라는 헤더의 값이 같으면 같은 출처라고 브라우저가 인식한다.

다르다면 브라우저에서 에러를 발생시킨다. (서버나 클라이언트에서 판단하는게 아니라 브라우저에서 판단한다.)

SOP(Same-Origin Policy, 동일 출처 정책) 때문에 COSR 상황이 발생하면 브라우저에서 보안 목적으로 외부서버에 요청한 데이터를 차단한다.

다른 출처로 리소스를 요청하면 SOP 정책을 위반하게 되는 것, CORS 정책은 SOP의 예외 조항이여서 다른 출처의 리소스를 사용할 수 있도록 허용 해준다.

SOP 동일 출처 정책
same-origin policy

다른 출처에서 가져온 리소스와 상호작용하는 것을 제한하는 보안 방식

즉 "같은 출처에서만 리소스를 공유할 수 있다" 라는 규칙을 가진 정책

같은 출처와 다른 출처의 구분

URL의 구성 요소중 프로토콜, 호스트, 포트번호가 동일하면 된다.

해결방법

Access-Control-Allow-Origin 헤더를 response에 추가한다.



참고 자료: https://www.youtube.com/watch?v=7iGIfcEsc2g (우테코 테코톡)

https://velog.io/@wlsdud2194/cors

https://evan-moon.github.io/2020/05/21/about-cors/ (세가지 시나리오마다 CORS가 동작하는 방식이 자세히 나와 있음)

0개의 댓글