SameSite
는 쿠키 속성이다.
문자 그대로 같은 사이트라는 의미로 쿠키를 같은 사이트에서만 주고 받을지, 다른 사이트에서도 주고 받을지를 정하는 속성이다.
CORS 쿠키버전이라고 생각하면 된다.
SameSite
정책은 크게 3가지가 있다.
Samesite
의 Default 속성으로 같은 사이트인지를 검증하지 않겠다는 뜻이다.
즉, 서로 다른 사이트에서도 쿠키를 주고 받을 수 있다.
Strict
는 같은 사이트에서만 쿠키를 주고 받는다. 그 외 모든 사이트는 쿠키를 주고 받는것이 제한된다.
기본적으로는 Strict
를 기반으로 하지만, 몇몇 검증된 방식은 다른 사이트에서도 통신을 허용한다.
( get, a태그, link 태그 등등)
크롬은 None
를 기본으로 사용했지만 2019년에 Lax
를 기본 옵션으로 바꾸었다.
그렇다면 Samesite
에서 같은 사이트인지 다른 사이트인지는 어떻게 판단하는 것일까
보통 도메인은 아래처럼 구성되어있다.
www.naver.com
www.google.com
mail.google.com
여기서 com
을 최상위도메인(TLD)라고 하며, 이 외에도 org
, net
, gov
및 국가 코드를 나타내는 kr
, uk
등등이 있다.
일반적으로 최상위 도메인에 +1을 한 site를 samesite
판단 기준이라고 본다.
그래서 www.google.com
과 mail.google.com
은 google.com
이라는 TLD+1 을 공유하고 있으므로 samesite
인 것이다.
그런데 github.io
, gov.ac
같은 도메인은 TLD+1로 판단하기 어려워서 이러한 도메인은 eTLD라고 따로 분류해주고있다.
결국, samesite
는 TLD+1 혹은 eTLD+1이 같은 사이트라고 볼 수 있다.