[Web] SameSite Cookies

undefcat·2020년 1월 22일
0

SameSite Cookies

크롬80버전부터 쿠키에 대한 정책에 약간 변화가 있다.

예를 들어, A사이트에 B사이트의 이미지가 있는 경우 A사이트에 접속한 유저C의 브라우저는 B사이트에 해당 이미지를 요청할 것이다.

이 때 만약 유저C가 B사이트에 대한 쿠키값이 있다면, 해당 쿠키값도 같이 보내게 된다.

물론 보통의 경우 이는 큰 문제가 되지 않는다. 아마 대부분은 문제가 없을 것이다. 하지만, 만약 A사이트가 악의적인 목적이 있고 B사이트에 쿠키값으로 인한 어떤 동작이 있는 경우 유저C는 원치않은 동작을 수행하게 될 수 있다.

따라서 이를 막기 위해 쿠키에 SameSite 값을 설정할 수 있다.

1. SameSite=None; Secure;

크롬80버전 이전의 기본값이다. 무조건 해당 사이트의 쿠키값을 보낸다.

SameSite=None은 반드시 Secure와 함께 설정되어야 하며, Secure가 없으면 무시된다.

2. SameSite=Lax; (기본값)

쿠키값이 SameSite=None; Secure;인 상태에서 A사이트에서 B사이트로 넘어가는 경우, 어떻게 될까? 이 경우, 어쨌든 Request는 A에서 발생하므로 쿠키값이 전송되지 않는다! 즉, 링크를 따라 최초 B사이트에 접속한 경우 쿠키값이 없는 상태가 되어버린다. 이는 대부분 원치않은 동작일 것이다. Lax는 이와 같은 경우에 사용된다. 단순한 리소스의 요청이 아니라, 사이트의 이동이 발생하는 경우 쿠키를 보내게된다.

3. SameSite=Strict;

이 쿠키값이 설정되어 있으면, 다른 도메인의 사이트간에 쿠키값이 전송되지 않는다. 가장 안전한 방법이다.

Reference

profile
undefined cat

0개의 댓글