본문 바로가기

Study Output for Myself/Computer Science

[CS]CORS(Corss Origin Resource Sharing)

Cross Origin Resource Sharing 

:서로 다른 도메인(corss-origin) 간 HTTP request가 가능하도록 해주는 표준 보안정책

 

Origin이란?

origin 은 url의 앞 세부분(프로토콜 + 도메인 + 포트)

https:// 프로토콜

it-eldorado.com 도메인

:80포트

프로토콜, 포트, 호스트 중 하나라도 일치하지 않다면 Cross Origin, 일치한다면 same origin이라고 한다.

 

보통은 같은 origin간에서만 request를 보내고 응답을 보낼 수 있음. 그것이 바로 Same Origin Policy.

SOP는 cross origin 간 요청을 보낼 수 없도록 금지하는 브라우저의 기본적 보안 정책.

 

CORS는 예외적인 상황에서 cross origin 간 요청을 보내고 응답을 받을 수 있게 해주는 브라우저 정책.

요청을 보내고 요청에 의해 서버에서 데이터를 받았다하더라도 Cors정책을 지키는지 검사해서 안전하지 않다면 브라우저에 주지 않음. 

 

CORS의 동작 원리

다른 origin으로 요청을 보낼 때 Origin http 헤더에 자신의  Origin을 설정하고, 서버로부터 응답을 받으면 응답의 Allow-Control-Allow-Origin 헤더에 설정된  Origin의 목록에 요청의  Origin헤더 값이 포함되는 지 검사.

즉, 서버에서 응답의 Allow-Control-Allow-Origin 헤더에 허용되는 Origin의 목록 혹은 와일드카드(*)(모든 origin을 허용하는 특수기호)를 설정해주면 됨.