일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ssrf
- php 로그인 페이지 만들기
- over the wire
- php 파일 업로드하기
- access control
- BANDiT
- php To Do List
- 파일 업로드 취약점
- War Game
- Server Side Request Forgery
- Authentication
- overthewire
- Leviathan
- sql injection
- FTZ
- php
- OS Command Injection
- active reconnaissance
- file upload
- tryhackme
- php file upload
- SQLi
- active recon
- php login page
- THM
- privilege escalation
- Cryptography
- Reconnaissance
- Cookie
- Recon
- Today
- Total
R's Hacking Daily Log
SOP (Same Origin Policy) 본문
Same Origin Policy
Same Origin Policy란 web security와 관련하여 만들어진 개념적인 정책이라 할 수 있다.
web을 이용하는 동안 다양한 리스크가 발생할 수 있지만 SOP는 그중에서도
서로 다른 웹 페이지 간의 상호작용에 대한 규칙을 정의한다.
사용자가 실수로라도 악의적인 page에 접근했다고 한들,
다른 page를 브라우징 하는 데에는 그 어떤 피해(영향)가 있어서는 안 된다는 것을 목적으로
다시 말해, 하나의 web page가 다른 web page에 의해 변경, 조작 등 영향을 주지 못하게 지켜야 할 규칙을
SOP라고 한다.
그렇다면 Origin이라는 것은 어떻게 정의할 수 있을까?
origin을 구분하기 위해서는 url의 protocol, domain, port 정보를 비교하게 된다.
기본적으로 url은
Protocol://Domain:Port/Path
와 같이 정해진 형태로 만들어진다.
이때 protocol은 HTTP or HTTPS일 수 있고 protocol에 따라 80 or 443 port를 사용하며
접근하고자 하는 host가 무엇이냐에 따라 Domain(hostname)도 당연히 달라진다.
same origin policy에서는 이 세 가지 정보를 비교하여 same origin인지 아닌지의 여부를 판단한다.
http://sec.inu.edu/access/~~/abc.jpg
https://sec.inu.edu:443/quiz/~~
다음과 같은 두 url이 있을 때, same origin인지 판별하기 위해서 볼 값은
1. http & https
2. sec.inu.edu
3. 80 & 443 port이다.
우선 첫 번째 url에서는 http protocol을 사용하고 두 번째 url에서는 https protocol이 사용되었기 때문에
두 url은 same origin일 수 없다.
두 url의 domain은 sec.inu.edu로 동일하지만 각각 80 & 443 port를 사용한다는 점이
same origin일 수 없는 두 번째 이유가 된다.
** 포트는 지정해서 사용하는 경우도 있지만 보통 browser로는 default port를 사용하기 때문에 protocol이
다르다고 한다면 port도 달라지겠구나 생각할 수 있다.
** Domain part를 비교할 때는 subdomain까지 모두 동일해야 한다.
결과적으로 서로 다른 site의 url을 보고 same origin이 아니라고 판단이 되는 경우
두 site의 관련 데이터는 각각 서로에게 영향을 주지 못하도록 처리된다.
** fetch 하는 경우에는 상황에 따라 origin이 할당되는 방식이 달라진다.
A site에서 B site의 js를 fetch하는 경우에 이 js의 origin은 A's origin으로 지정되지만
A site에서 B site의 image를 fetch하는 경우에는 image의 origin은 B's origin으로 지정된다.
EXCEPT )
site 간의 상호작용이 필요한 경우에서 Cross Origin Resource Sharing으로 제한된 공유는 가능하도록 허용된다.
Ex) js에서의 postMessage function
'Daily-Note > web' 카테고리의 다른 글
Cookie Policy (0) | 2023.05.18 |
---|---|
DVWA로 보는 간단한 CSRF 실습 (0) | 2023.04.08 |
CSRF Defense (0) | 2023.04.08 |
XSS (0) | 2023.04.05 |
CSRF Attack (0) | 2023.04.04 |