본문 바로가기
기타 web 개발 지식

cookie domain 으로 "vercel.app" 사용 시 생긴는 에러와 PSL,TLD,eTLD 이해

by spare8433 2025. 2. 12.

cookie domain 으로 "vercel.app" 사용 시 생기는 오류



vercel로 배포 시 [...].vercel.app의 형태로 도메인이 지정되므로 vercel 로 배포한 프런트 서버와 백엔드 서버에서 쿠키를 같은 도메인으로써 공유하고 사용할 수 있을 거라 판단하여 응답 헤더에 Set-Cookie-"domain=vercel.app ...를 사용했더니



"this attempt to set a cookie via a set-cookie header was blocked because its domain attribute was invaild with regards to the current host url"




메시지와 함께 쿠키가 저장되지 않는 상황을 맞이하여 이유를 찾다 예상되는 이유를 발견 vercel.app 은 공용 도메인(Public Suffix List, PSL)에 등록되어 있어 브라우저가 공용 도메인의 서브도메인 간 쿠키 공유를 막습니다.










PSL (Public Suffix List) 의 이해



PLS공용 접미사 목록(Public Suffix List)으로, 인터넷 도메인 이름에서 TLD 또는 eTLD 와 비슷한 역할을 하는 접미사들을 포함하는 목록입니다.



최신 브라우저에 목록이 사용됩니다 쿠키 등록 허용, 주소창에서 도메인 이름 감지 및 사이트 그룹화와 같은 기능에 이를 사용합니다.










TLD (Top-Level Domain) 의 이해

TLD최상위 도메인을 의미하며, 인터넷 주소 체계에서 도메인의 가장 끝 부분에 위치하는 가장 높은 계층의 도메인을 의미합니다.



ex) .com, .kr










eTLD (Effective Top-Level Domain) 의 이해



eTLD실질적인 최상위 도메인을 의미하며, 사용자가 도메인 이름을 사용할 때 기준이 되는 도메인입니다. eTLDTLD 외에도 도메인 이름이 특정 조직, 서비스, 또는 지역에 속하는지를 나타내는 부분을 포함할 수 있습니다.



예를 들어 kr(국가 코드 최상위 도메인)TLDco. 가 붙여 사용한 co.kr한국 기업용 도메인으로 사용되는 eTLD 이다. 최종적으로 kr, co.kr 모두 eTLD 인 것



ex) co.kr, kr, com










결론



사실 조금만 생각해보면 잘못된 사용법임을 깨달을 수 있다 만약 vercel.app 같은 공용 도메인에 대한 쿠키를 허용하면, 다른 사용자의 서브도메인에서도 해당 쿠키를 사용할 수 있어 보안 위험이 발생할 수 있다.



즉 쿠키가 저장되지 않는 상황은 Vercel 이 domain name "vercel.app" 을 PSL 에 등록하고 브라우저는 해당 도메인에 대한 쿠키 등록에 제한을 주었기 때문에 쿠키가 저장되지 않은 것으로 보인다.



Vercel has listed their domain name "vercel.app" on the PSL.










해결 방안



따로 도메인을 vercel 에 각각 등록하여 프론트 및 백엔드 서버는 같은 도메인을 가지되 백엔드 서버는 서브 도메인으로 구분하여 사용



exampe

  • 프론트 도메인 : examaple.com
  • 백엔드 도메인: back.examaple.com
  • 쿠키 도메인 옵션: examaple.com






참고

https://en.wikipedia.org/wiki/Public_Suffix_List