JUST WRITE

SOP 본문

Network

SOP

천재보단범재 2021. 12. 17. 21:42

SOP

SOP

Same-origin policy

SOP(Same-origin policy)다른 Domain Resource로부터의 공격을 막기 위한 Web Brrowser 보안 정책이다.

다른 Origin로부터의 Data 접근을 제한한다.

Origin은 URI scheme, Domain, Port Number로 구성된다.

예를 들어 아래와 같은 URL은

http://normal-website.com/example/example.html
  • Scheme -> http
  • Domain -> normal-website.com
  • Port Number -> 80

로 구성된다.

URL accessed SOP Access 허용 여부
http://normal-website.com/example/ Yes
http://normal-website.com/example2/ Yes
https://normal-website.com/example/ No, Different scheme and Port Number
http://en.normal-website.com/example/ No, Different Domain
http://www.normal-website.com/example/ No, Different Domain
http://normal-website.com/example:8080/example/ No, Different Port Number

SOP 필요성

다른 Origin에서 HTTP Request를 요청하면 인증 Session과 같은 다른 Domain 정보의 Cookie가 전달된다.

즉, 사용자의 Session내에서 사용자 특별한 정보가 담긴 Response가 생성된다.

SOP가 없다면 악성 Web Site나 개인적인 정보가 노출될 수 있다.

SOP 구현

일반적으로 JavaScript 코드 내 다른 Cross-domain 콘텐츠의 접근을 제한한다.

<img>, <video> Tag와 같이 외부 Resource의 접근을 허용하지만 해당 페이지의 JavaScript에서는 읽지 못한다.

예외

Window, Location 객체로부터 예외적인 접근이 가능하다.

Window 관련 Function

  • window.blur
  • window.close
  • window.focus
  • window.postMessage

Window 관련 속성

속성 읽기 / 쓰기
window.closed 읽기 전용
window.frames 읽기 전용
window.length 읽기 전용
window.location 읽기 / 쓰기
window.opener 읽기 전용
window.parent 읽기 전용
window.self 읽기 전용
window.top 읽기 전용
window.window 읽기 전용

Location 관련 Function, 속성

  • location.replace
  • URLUtils.href (쓰기 전용)
728x90
반응형

'Network' 카테고리의 다른 글

Web Vitals  (0) 2021.12.29
CORS  (0) 2021.12.19
JWT  (0) 2021.12.10
Synchronous vs Asynchronous  (0) 2021.11.12
GET vs POST  (0) 2021.09.22
Comments