2020-02-18 23:02
안녕하세요. 오늘은 몇일 전에 변경된 크롬 80 버전 업데이트 변경내용에 대해서 정리해보려고 합니다. 전에 크롬 업데이트 내용을 간과하고 있다가 크롬 업데이트 후 버그가 발생하는 바람에 아주 애먹었던 경험을 생각해보면요. 주기적으로 되는 업데이트 내용에 대해서 미리미리 파악하고 있어야 겠다는 생각이 듭니다.

첫번째로 쿠키 컨텍스트를 이해해야 합니다. 서로 다른 도메인에서 같은 쿠키에 접근하는 경우 Cross-site, 혹은 third party’ 라고 합니다.

두번째로 같은 도메인에서 쿠키에 접근하는 것을 same-site 쿠키, ‘first party’ 라고 합니다.

document.cookie = "safeCookie1=foo; SameSite=Strict";
document.cookie = "safeCookie1=foo; SameSite=Lax";
document.cookie = "safeCookie2=foo"; // chrome 80 over : default Lax
document.cookie = "crossCookie=bar; SameSite=None; Secure";
document.cookie = "safeCookie1=foo; SameSite=None";Strict 는 같은 도메인에서만 접근 가능합니다. Lax는 Http 요청과 a href, link href 로만 쿠키 전달이 가능합니다. 그리고 SameSite에서 None 처리를 할 경우 Secure를 사용하지 않으면 전달이 불가능합니다. cross-site를 사용하기 위한 최소한의 보안이라는 거겠죠.
물론 이 크롬 80 업데이트에 대비하지 못한 경우 “SameSite=None; Secure” 를 이용해서 계속 크로스 사이트로 쿠키를 공유해서 사용할 수 있겠지만 장기적으로 바꿔야 할 것 같습니다.
요청 타입 별 쿠키 전송 가능 설정
🔽🔽🔽

2020년 2월에 크롬 80 버전이 업데이트가 되었으니 관련 문제가 생겼다면 참고해볼만할 것 같습니다. 원래 2월 초에 관련 포스팅을 작성하려고 했는데 많이 늦어졌습니다. 어차피 쿠키 사용은 CSRF 공격에 자유롭지 않으니 모두 변경하는것이 좋겠습니다.