티스토리 뷰

Same-origin과 Same-site

same-sitesame-origin은 다르다.

schemehost name, port의 조합이 모두 같을 경우 same-origin이고, host name이 같을 경우 same-site라고 한다. 

origin

https://sample.com:8080 라는 사이트가 있다는 것을 기준으로 origin을 비교해 볼 경우

origin compare 내용
https://sample1.com:8080 cross-origin domain이 다름
http://sample.com:8080 cross-origin scheme이 다름
https://sample.com:8081 cross-origin port가 다름
https://blog.sample.com:8080 cross-origin sub domain이 다름
https://sample.com:8080 same-origin 같은 origin

cors를 포스팅할 때, origin에 대한 내용을 정리해두었다.

https://kmj24.tistory.com/148

 

[웹 보안]CORS(Cross Origin Resource Sharing, 교차 출처 자원 공유)

최근 빗썸 Open API를 이용하여 가상화폐에 대한 데이터를 가져오려고 하고 있다. "https://api.bithumb.com/public/ticker/all_KRW" url을 get으로 요청을 보냈는데 아래와 같은 오류를 만났다.  CORS정책에 의..

kmj24.tistory.com

site

https://sample.com:8080 라는 사이트가 있다는 것을 기준으로 site를 비교해 볼 경우 

origin compare 내용
https://sample1.com:8080 cross-site domain이 다름
http://sample.com:8080 same-site scheme이 달라도, domain이 같다.
https://sample.com:8081 same-site port가 달라도, domain이 같다.
https://blog.sample.com:8080 same-site sub domain이 달라도, domain이 같다.
https://sample.com:8080 same-site 완전히 같다.

same-site는 scheme을 무시하지만 http취약점을 방어하기 위해 조금 더 엄격한 schemeful same-site로 구별하는 방법이 있다.

만약 https://sample.com:8080과 http://sample.com:8080이 있을 때 scheme이 다르므로 cross-site 취급을 한다.

 

Referer와 Referrer-Policy

Referer은 웹 브라우저로 www를 서핑할 때, 하이퍼링크를 통하여 각각의 사이트로 방문 시 남는 흔적을 의미한다.

만약 웹 사이트 A에서 B 라는 사이트로 이동하는 하이퍼링크가 존재하고, 이때 A 사이트 이용자가 이 하이퍼링크를 클릭하게 될 경우 웹 브라우저에서 B 사이트로 Referer를 전송하게 된다. B사이트의 관리자는 전송된 Referer를 보고 A사이트를 통해 자신의 사이트에 방문한 사실을 알 수 있다.

 

※ (Referer은 사실 오타였다고 한다.)

출처: https://en.wikipedia.org/wiki/HTTP_referer

 

HTTP request는 Optional 헤더인 Referer를 가지고 있을 수 있다.

Referer 헤더에 해당 정보를 요청한 사이트의 전체 주소가 담겨져 있다.

google에서 티스토리를 검색하여 진입한 상태의 referer

 Referer헤더에는 다양한 형태의 요청에 대한 내용이 있을 수 있다.

만약 링크를 타고 들어왔다면 해당 링크를 포함하는 site의 주소가 들어있다.

다른 도메인에 리소스 요청을 보내는 경우라면 해당 리소스를 사용하는 페이지의 주소가 이 헤더에 포함된다.

 

Referrer-Policy

 Referer에 query 또는 path등의 사용자 식별 정보를 포함한 전체 주소를 Referer를 통하여 다른 origin에 보내는 것은, 보안상의 문제가 될 수 있다.

이러한 보안상의 이유로 referer 데이터를 제한하기 위해 사용하는 것이 Referrer-Policy이다.

 

referrer-policy 정책의 종류는 총 8가지다.

데이터가 없을 경우, origin만 존재하는 경우, URL 전체가 존재하는 경우에 따라 나눈다.

  내용
no-referrer Referer 헤더를 생략하여 전송한다.
origin Referer 헤더에 origin을 포함하여 전송한다.
unsafe-url Referer 헤더에 보안에 관계없이 모든 정보를 포함하여 전송한다.
strict-origin 프로토콜 보안 수준이 동일한 경우에만 원본을 전송한다.
덜 안전한 대상 (HTTPS → HTTP) 으로 Referer헤더를 보내지 않도록 한다.
no-referrer-when-downgrade 프로토콜 보안 수준이 동일하거나 높을 경우 원본 경로 및 쿼리 문자열을 포함하여 전송.
덜 안전한 대상으로는 Referer 헤더를 보내지 않도록 한다.
origin-when-cross-origin 동일한 프로토콜 보안 수준에 대하여 same-origin요청을 수행할 경우 origin path 및 쿼리 문자열을 보낸다.
덜 안전한 대상에 대한 요청에 대한 origin만 보낸다.
same-origin same-origin에 대하여 origin, path, query 문자열을 전송한다.
 cross-origin으로는 Referer헤더를 보내지 않도록 한다.
strict-origin-when-cross-origin
(default)
same-origin-request를 수행할 때 origin, path, query문자열을 전송한다.
cross-origin일 경우 프로토콜 보안 수준이 동일할 경우에만 origin을 보낸다.
덜 안전한 대상으로 Referer헤더를 보내지 않도록 한다.

 

 

 

 

참고

https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Referer

 

Referer - HTTP | MDN

Referer 요청 헤더는 현재 요청을 보낸 페이지의 절대 혹은 부분 주소를 포함합니다. 만약 링크를 타고 들어왔다면 해당 링크를 포함하고 있는 페이지의 주소가, 다른 도메인에 리소스 요청을 보

developer.mozilla.org

https://ko.wikipedia.org/wiki/HTTP_%EB%A6%AC%ED%8D%BC%EB%9F%AC

 

HTTP 리퍼러 - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy

 

Referrer-Policy - HTTP | MDN

The Referrer-Policy HTTP header controls how much referrer information (sent with the Referer header) should be included with requests. Aside from the HTTP header, you can set this policy in HTML.

developer.mozilla.org

https://yceffort.kr/2020/09/referer-and-referrer-policy#referer%EC%99%80-referrer-policy-101

 

Home

yceffort

yceffort.kr

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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 31
글 보관함