Cookie
쿠키(cookie)란 하이퍼 텍스트의 기록서(HTTP)의 일종으로서 인터넷 사용자가 어떠한 웹사이트를 방문할 경우 그 사이트가 사용하고 있는 서버에서 인터넷 사용자의 컴퓨터에 설치하는 작은 기록 정보 파일을 일컫는다. HTTP 쿠키, 웹 쿠키, 브라우저 쿠키라고도 한다. 이 기록 파일에 담긴 정보는 인터넷 사용자가 같은 웹사이트를 방문할 때마다 읽히고 수시로 새로운 정보로 바뀐다. 이 수단은 넷스케이프의 프로그램 개발자였던 루 몬툴리(Lou Montulli)가 고안한 뒤로 오늘날 많은 서버 및 웹사이트들이 브라우저의 신속성을 위해 즐겨 쓰고 있다.
Libraries
- js-cookie
- next-client-cookies (Nextjs)
- react-cookie (React)
- universal-cookie - Universal cookies for JavaScript
- universal-cookie-express - Hook cookies get/set on Express for server-rendering
SameSite
SameSite 쿠키는 앞서 언급한 서드 파티 쿠키의 보안적 문제를 해결하기 위해 만들어진 기술입니다. 크로스 사이트(Cross-site)로 전송하는 요청의 경우 쿠키의 전송에 제한을 두도록 합니다.
SameSite 쿠키의 정책으로 None, Lax, Strict 세 가지 종류를 선택할 수 있고, 각각 동작하는 방식이 다릅니다.
- None
- SameSite 가 탄생하기 전 쿠키와 동작하는 방식이 같습니다. None으로 설정된 쿠키의 경우 크로스 사이트 요청의 경우에도 항상 전송됩니다. 즉, 서드 파티 쿠키도 전송됩니다. 따라서, 보안적으로도 SameSite 적용을 하지 않은 쿠키와 마찬가지로 문제가 있는 방식입니다.
- Strict
- 가장 보수적인 정책입니다. Strict로 설정된 쿠키는 크로스 사이트 요청에는 항상 전송되지 않습니다. 즉, 서드 파티 쿠키는 전송되지 않고, 퍼스트 파티 쿠키만 전송됩니다.
- Lax
- Strict에 비해 상대적으로 느슨한 정책입니다. Lax로 설정된 경우, 대체로 서드 파티 쿠키는 전송되지 않지만, 몇 가지 예외적인 요청에는 전송됩니다.
See also
- Web
- Federated Learning of Cohorts (FLoC) - FLoC, 관심기반 광고를 위한 써드파티 쿠키 대체제
Favorite site
- Wikipedia (en) 쿠키에 대한 설명
- 쿠기(Cookie) Persistent Cookie & Session Cookie
- SecureFlag
- 삼성 소프트웨어 멤버쉽: Cookie in HTTP
- 쿠키(cookie) 속성
- Cookie(HTTP Session) 보안 1
- Joinc: HTTP cookie
Cookie & Session
- 실전! 개발자를 위한 Security 체크 포인트 ② 웹 서버 보안 기초 - HTTP, Cookie, Session
- HTTP Protocol / Cookie 정리
- HTTP Session이란?
- ASP.NET Web API와 HTTP 쿠키
Documentation
- [https://msdn.microsoft.com/en-us/library/windows/desktop/aa384321(v=vs.85.aspx MSDN: HTTP Cookies]
References
-
Mt1716_egloos-cookie_http_session_security.pdf ↩