만약 내가 만든 서버에서 나가는 데이터를 아무 사람이나 받게된다면 큰 문제가 생길수 있다.
반대로 아무 사람이 내 서버에 데이터를 전송해도 큰 문제가 생길 것이다.
따라서 출처가 확실한, 믿을만한 사람과 데이터를 교환해야만 한다.
물론 서버에서도 이런 보안과정을 처리하지만, 브라우저단에서도 이를 처리하는 큰 원칙이 있다.
그것이 바로 동일 출처 정책이다.
동일 출처 정책은 스크립트 사이에서 데이터를 전달할 때 중요하게 작용하는 보안 방식인데, 말 그대로 출처가 동일한 사람끼리만 데이터를 전달하게 해준다.
여기서 말하는 출처는 도메인 네임이다.
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
'CS > Computer Science' 카테고리의 다른 글
Cross-Origin Resource Sharing : 교차 출처 리소스 공유 (0) | 2022.02.15 |
---|---|
CSR과 SSR의 차이 (0) | 2022.01.23 |
네트워크 1.2 웹 서버의 IP주소를 DNS 서버에 조회한다. (0) | 2021.12.31 |
네트워크 1.1 HTTP 리퀘스트 메시지를 작성한다. (0) | 2021.12.27 |
웹사이트 렌더링은 어떻게 되는가? (2) | 2021.12.10 |