안녕하세요. 오늘은 몇일 전에 변경된 크롬 80 버전 업데이트 변경내용에 대해서 정리해보려고 합니다. 전에 크롬 업데이트 내용을 간과하고 있다가 크롬 업데이트 후 버그가 발생하는 바람에 아주 애먹었던 경험을 생각해보면요. 주기적으로 되는 업데이트 내용에 대해서 미리미리 파악하고 있어야 겠다는 생각이 듭니다.
1. 개발자를 위한 새로운 SameSite=None; 보안 쿠키 설정에 대비
1.1 Cross-site, same-site 쿠키 컨텍스트 이해하기
첫번째로 쿠키 컨텍스트를 이해해야 합니다. 서로 다른 도메인에서 같은 쿠키에 접근하는 경우 Cross-site, 혹은 third party' 라고 합니다.
두번째로 같은 도메인에서 쿠키에 접근하는 것을 same-site 쿠키, 'first party' 라고 합니다.
1.2. 쿠키에 SameSite 설정 별 권한
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 공격에 자유롭지 않으니 모두 변경하는것이 좋겠습니다.
'dev' 카테고리의 다른 글
node.js 설치와 개발 환경 구성(윈도우 개발 + Github + 리눅스 운영) (1) | 2020.04.04 |
---|---|
구글 클라우드 예산 초과 및 결제 금액 발생 시 알림 설정 (1) | 2020.03.01 |
구글 클라우드 프리티어 이후 항상(평생) 무료 사용하는 방법 (11) | 2020.03.01 |
IOS - UIWebView와 WKWebView (3) | 2020.02.29 |
맥북(맥os) brew 설치와 사용법 (0) | 2020.02.16 |
헤로쿠(heroku)에 github 연동해서 cors 프록시 서버 만들기(with cors-anywhere) (2) | 2020.02.08 |
공개키 비밀키 암호화 방식 (1) | 2020.02.02 |
2020년 웹디자인 트렌드 TOP 9 (5) | 2020.01.26 |