CS/Computer Science

Same-Origin Policy : 동일 출처 정책

Tonkatsu 2022. 2. 14. 14:19

 

만약 내가 만든 서버에서 나가는 데이터를 아무 사람이나 받게된다면 큰 문제가 생길수 있다.

반대로 아무 사람이 내 서버에 데이터를 전송해도 큰 문제가 생길 것이다.

따라서 출처가 확실한, 믿을만한 사람과 데이터를 교환해야만 한다.

 

물론 서버에서도 이런 보안과정을 처리하지만, 브라우저단에서도 이를 처리하는 큰 원칙이 있다.

그것이 바로 동일 출처 정책이다.

동일 출처 정책은 스크립트 사이에서 데이터를 전달할 때 중요하게 작용하는 보안 방식인데, 말 그대로 출처가 동일한 사람끼리만 데이터를 전달하게 해준다.

 

여기서 말하는 출처는 도메인 네임이다.

http://store.company.com/dir/page.html 을 기준으로 하여 출처의 동일 여부를 판단한 결과는 아래와 같다.

 

URL 결과 이유
http://store.company.com/dir2/other.html 성공 경로만 다름
http://store.company.com/dir/inner/another.html 성공 경로만 다름
https://store.company.com/secure.html 실패 프로토콜 다름
http://store.company.com:81/dir/etc.html 실패 포트 다름 (http://는 80이 기본값)
http://news.company.com/dir/other.html 실패 호스트 다름

 

따라서 브라우저에서 시행하는 데이터 교환은 출처가 동일한 경우에만 시행이 된다.

 

물론 동일 출처 정책은 좋은 보안 수단이지만, 실제 서버의 도메인 네임을 브라우저와 완전히 같게 하는 것도 문제가 발생할 수 있기 때문에, CORS를 이용하여 이를 우회하게 된다.

 

출처 : https://developer.mozilla.org/ko/docs/Web/Security/Same-origin_policy