-
Sames site cookie 정책이 뭐지?기술 관련/etc 2021. 1. 12. 00:38
지난번 Tistory 지도 입력 관련하여 Chrome Browser의 Samesite=LAX 정책에 대한 부분을 이야기 했었는데 관련하여 좀 더 자료를 찾아 보았다.
서버 애플리케이션 개발자들이 이 정책 관련하여 보다 섬세하게 관리해야 한다는 것을 이야기 하고 있다.
blog.chromium.org/2019/10/developers-get-ready-for-new.html
www.chromestatus.com/feature/5088147346030592
SameSite 쿠키에 대한 설명을 하는 글이다.
web.dev/samesite-cookies-explained/
정리하면, Web Server에 요청시 전송되는 쿠키에 대한 정책 중 Cross Site 관련 쿠키 정책으로서 SameSite 라는 속성과 세 가지 종류의 값이 추가됐다.
* SameSite=Strict
* SameSite=LAX
* SameSite=None
Strict가 가장 제한적이며 현재 브라우저의 URL에 나타나는 domain과 요청하는 URL의 domain이 같은 경우만 쿠키가 전송된다. 어떤 web site가 있고 해당 web site와 동일한 domain의 링크(이하 내부 링크)를 통해 정보를 요청할 때, 해당 domain에 대한 cookie가 있는 경우에만 웹브라우저가 쿠키를 해당 요청과 함께 서버로 전송한다. 위의 조건에 맞지 않는 경우에는 쿠키를 전송하지 않는다.
간단한 예를 들어 설명하자면, 이메일을 통해 이 내부 링크를 전송하고, 해당 메일을 내부 링크와 다른 domain 사용하는 웹 페이지에서 열어 클릭하는 경우를 쿠키가 전송되지 않는다.
LAX인 경우는 기본적으로 strict와 같이 domain의 제한을 따르지만 예외적으로 top-level navigations을 통한 요청은 허용하는 것이다. 예를 들어, 다른 domain에 있는 image 표시를 위한 <img> 태그 요청에는 쿠키가 전달되지 않지만, 사용자가 <a> 태그를 클릭하여 페이지를 요청하는 경우는 cookie가 같이 전송 되는 것을 말한다.
마지막으로 None인 경우 domain 확인을 하지 않고 무조건 전송하겠다는 것다. 물론 이 경우에는 좀 더 제한적으로 Secure 옵션이 반드시 추가되어야만 반영된다.
앞서, Tistory에서 지도 입력으로 이 글을 시작했었다.
티스토리 글 편집 화면에서는 지도 추가 버튼을 누르면 현재 글 작성 중인 창과 별도로 daum 지도 윈도가 띄워지고 이를 통해 장소를 검색하고 설정할 수 있다. 문제는 이 daum 지도에 보이는 첨부 버튼을 눌렀을 때 tistory 대시보드 화면으로 전환되기 때문에 SameSite가 적용된 브라우저에서는 오류가 발생한다.
지도 첨부 버튼을 누르면 내부적으로 tistory.com의 특정 API로 지도 정보와 함께 AJAX 호출을 하게 되는데, 이 호출을 하는 daum지도와 tistory의 domain 주소가 명확하게 다르므로 기본 쿠기 정책이 변경된 크롬브라우저에서는 해당 쿠키를 전달하지 않는다. 따라서, 인증되지 않는 접근으로 간주하고 인증 화면으로 redirect 되지만 해당 tistory 세션은 이미 로그인이 되어 있는 상태므로 대시보드 화면이 나타나게 된다.
사실 이 문제를 브라우저의 기본 쿠키 설정을 None으로 바꾸기 보다는 daum과 tistory 사이에 쿠키 정책에 대한 부분이 변경되어야 할 것 같은데 과연 어떻게 처리될 것인지 궁금하다.
'기술 관련 > etc' 카테고리의 다른 글
티스토리 소스 코드 강조 CSS 수정하기 (0) 2021.01.19 emacs를 써보자 #1 (1) 2021.01.18 티스토리 글에 지도를 넣어보자 (0) 2021.01.11 크롬브라우저 samesite cookie 설정 하기 (0) 2021.01.10 Vue.js에서 Invalid Host header 를 만나면? (0) 2021.01.09