본문 바로가기

Programming

쿠키란?


http는 이전 상태를 저장하지 않는 stateless이기 때문에 http 프로토콜 자체로는 한 번 로그인했다고 해서 그 상태를 기억하고 있지 못한다. 이것은 쇼핑몰을 예시로 들면 창을 옮길때마다 재 로그인을 해야하는 어마어마한 불편을 초래한다. 따라서 우리는 http 환경에서 세션 ID라는 것을 통해 한번 로그인 했을 때, 이전 상태를 유지하게 된다. 그리고 이 때 값들을 저장하는 세션 ID가 보통 쿠키로 전달된다.

쿠키란?

쿠키는 간단히 말하면 클라이언트의 로컬에 저장되어 있는 변수와 값의 집합 구조로, 클라이언트와 서버간의 데이터를 주고 받는데에 이용된다.

예를 들어보자,
우리가 처음 로그인을 하게 되면,

1. 서버는 이 때 세션 ID라는 것을 발급하여 쿠키값으로 만들게 되고,
2. Set-cookie라는 헤더를 통해 웹 브라우저로 전달한다.
3. 웹 브라우저는 이를 저장해두었다가,
4. 요청시마다 세션 쿠키를 쿠키 헤더를 통해서 보내게 된다.

하지만 이 말은 곧 어떤 사용자의 세션 ID를 알게 되면 우리는 해당 웹을 사용자 권한으로 접속할 수 있게 된다는 것이며,
이를 정보보안쪽에서는 세션 하이재킹 공격이라고 한다.

나는 초코칩 쿠키를 좋아한다