Post

SameSite 쿠키 정책 이해하기: None, Lax, Strict의 차이와 문제 해결 방법

쿠키를 가지고 있던 Request 가 쿠키를 잃어버려서 돌아 왔다.


우리는 SSO 인증을 위해서 사내에서 제공하는 SSO 서버쪽으로 요청을 보내고 그쪽 로그인 페이지를 띄우고 다시 우리 서비스로 돌아오고 있다.

그런데 만약 /question/12345 라는 endpoint 로 접근을 했는데 SSO 인증을 하고 돌아오면 여기로 돌아올수가 없어서 cookie 에 back_url_path 에 아까 말한 그 /question/12345 라는 값을 넣어서 다시 우리 페이지로 돌아왔을때 원래 접근하려고한 페이지에 갈 수 있게 개발이 되어있었다.

하지만 이 기능이 제대로 동작을 하지 않는 것이다! 열심히 파헤쳐본 결과 쿠키가 SSO 쪽에 갔다오면 유실되었고 이를 위해 쿠키정책을 알아보게 되었다!

쿠키 정책 설명


쿠키에는 samesite 옵션이 있다 이 옵션에는 종류가 3가지가 있는데 이 3가지에 따라 쿠키가 다른곳으로 가면서 없어질수도 있다!

  1. None 다른 사이트의 쿠키도 전송이 된다. 즉 samesite 가 아니어도 된다는 의미이다! 우리 사이트에서 SSO 사이트로 전송을 해도 계속 쿠키가 붙어 다닌다는 의미이다
  2. Lax 우선 Lax 가 쿠키 samesite 옵션의 default 값이다. GET 요청인 경우에만 쿠키가 붙어다니고 다른 Request 의 경우에는 samesite 가 아니면 붙지 않는다! 우리가 sso 쪽에 request 를 보낸것이 GET 이 아니었기 때문에 문제가 생겼던것으로 보인다!
  3. Strict 예상했겠지만! 어느 순간에도 samesite 가 아니면 붙지 않는다!
This post is licensed under CC BY 4.0 by the author.

© 병욱. Some rights reserved.