본문 바로가기
Security

[Info] Same-origin policy(SOP, 동일 출처 정책) 란?

by 선인장 🌵 2022. 8. 28.
728x90
728x90

Same-origin policy(SOP, 동일 출처 정책) 란?

쿠키(Cookie) & 세션(Session) 관련해서 확인할 내용이 있어서 다시 한번 책을 읽어 보던 중 Same-origin policy(SOP, 동일 출처 정책) 개념에 대해서 한번 더 공부할 겸 정리를 해보려고 한다.

[Info] SOP / Same-origin policy(동일 출처 정책) 란?

그럼 Same-origin policy(SOP, 동일 출처 정책)에 대해서 알아보도록 하자.

1. Origin 이란?

일단 Same-origin policy(SOP)을 간단히 영어 단어로만 풀어서 설명을 하면 아래와 같다.

  • Same = 동일, 같은
  • Origin = 기원, 출처
  • Policy = 정책

Same-origin policy을 해석해서 보면 같은(동일) 출처 정책으로 이해할 수 있다.

그러면 Origin이 정확히 어떤 의미를 가지는지를 확인해보도록 하자.

일반적으로 사용하는 단어가 아니라 브라우저에서 통신 시 사용하는 부분이기에 Origin이라는 것을 이해하고 넘어가야 한다.

Origin은 예를 들면 "https://happylie.tistory.com" 같이 표현할 수 있으며, 아래와 같이 구분된다.

  • 프로토콜(Protocol, Scheme) = https
  • 호스트(Host) = happylie.tistory.com
  • 포트(Port) = 443

그럼 일단 Origin이 어떤 건지에 대해서 알아보았다.

728x90

2. Same-origin policy(SOP) 란?

그럼 이제 Same-origin policy(SOP)에 대해서 알아보도록 하자.

SOP는 웹 애플리케이션 보안 모델로 중요한 개념이며, 동일한 Origin 사이트에서 Ajax 등 리소스를 같이 사용할 수 있으나 Origin이 틀린 사이트에서 다른 Origin의 Ajax 등 리소스를 사용할 수 없도록 제한하는 보안 모델이다.

결국, 웹 브라우저에서 보안을 위해서 동일한 Origin에 대해서만 허용하여 요청을 주고받을 수 있도록 하는 정책이다.

참고로 이미지, CSS, Javascript 등과 같이 리소스를 불러오는 <img>, <style>, <script> 등의 태그에서는 SOP의 영향을 받지 않는다.

조금 이해가 어려울 수 있으나 아래 표를 보면 정말 쉽게 이해를 할 수 있다.

기본 URL 값은 위에 예제로 사용한 "https://happylie.tistory.com"이다.

Site URL Origin 결과 이유
https://happylie.tistory.com/2.html Same Origin 허용 Path만 다름
https://happylie.tistory.com/category/3.html Same Origin 허용 Path만 다름
http://happylie.tistory.com/2.html Cross Origin 차단 프로토콜(Protocol, Scheme)가 다름
https://test.tistory.com/2.html Cross Origin 차단 호스트(Host)가 다름
https://happylie.tistory.com:8443/2.html Cross Origin 차단 포트(Port)가 다름
728x90

이렇게 Same-origin policy(SOP)는 동일한 Origin이 아닌 곳에서 리소스 요청 등이 왔을 경우 허용, 차단을 하게 되는 정책이며 보안에서 중요한 요소를 함을 알 수 있다.

하지만, 서비스를 만들고 운영하다 보면 동일한 Origin이 아닌 곳에서 데이터를 주고받아야 하는 경우가 있을 수 있다.

쉽게 설명하면 아래와 같은 경로는 모두 Host가 다르기 때문에 Origin이 다름으로 확인이 된다.

  • 메일 : https://mail.daum.net
  • 카페 : https://cafe.daum.net
  • 블로그 : https://blog.daum.net
  • 뉴스 : https://news.daum.net

이러한 부분에서 Same-origin policy(SOP)를 적용받지 않고 공유를 해야 하는 방법 필요하다.

그래서 위와 같은 상황에서 여러 부분을 공유하기 위해서 사용할 수 있도록 나온 방법이 "Cross-origin resource sharing(CORS, 교차 출처 리소스 공유)"라는 방법이다.

이 방법은 Same-origin policy(SOP) 내용에 이어서 다시 한번 정리해서 작성하도록 하겠다.

3. 참고 문서

728x90
728x90


🌵댓글

 

loading