쿠키 Cookies 🍪

 

HTTP 프로토콜의 주된 특징은 1. connectionless 와 2. stateless 였다. 

따라서 웹 서버는 클라언트를 매번 기억할 수 없다. ( 클라이언트의 IP 주소와 User-Agent 는 매번 변경 가능) 

 

더보기

HTTP 프로토콜 특징

 

  • Connectionless: 하나의 요청에 하나의 응답을 한 후 연결을 종료하는 것을 의미합니다. 특정 요청에 대한 연결은 이후의 요청과 이어지지 않고 새 요청이 있을 때 마다 항상 새로운 연결을 맺습니다.
  • Stateless: 통신이 끝난 후 상태 정보를 저장하지 않는 것을 의미합니다. 이전 연결에서 사용한 데이터를 다른 연결에서 요구할 수 없습니다.

 

이러한 connectionless + stateless 의 특성을 갖는 HTTP 에서 상태를 유지하기 위해 쿠키(COOKIE)가 필요하다. 

KEY - VALUE 로 이뤄진 일종의 단위로, 

서버가 클라이언트에게 쿠키를 발급하면 , 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 같이 전송하게 된다. 

서버는 클라이언트 요청에 포함된 쿠키를 확인해 클라이언트를 구분할 수 있다. 

 

클라이언트의 정보 기록 

웹 서버는 각 클라이언트의 팝업 옵션(ex 다시보지 않기 / 7일 간 표시하지 않기 등) 을 기억하기 위해 쿠키에 해당 정보를 기록하고, 쿠키를 통해 팝업 창 표시여부를 판단한다. 

 

❔ 쿠키가 필요 없는데 통신할 때마다 쿠키가 전송된다면 비효율적이지 않을까??

❕ 이런 단점을 보완하기 위해 Modern storage APIs를 통해 데이터를 저장하는 방식을 권장하고 있다 !

 

 

클라이언트의 상태 정보 

웹 사이트에서는 회원가입과 로그인을 통한 개개인 맞춤형 서비스를 제공한다. 웹 서버에서는 수많은 클라이언트의 로그인 상태와 이용자를 구별해야 하는데, 이때 클라이언트를 식별할 수 있는 값을 쿠키에 저장해 사용한다. 

 

쿠기 변조 

악의적인 클라이언트는 쿠키 정보를 변조해 서버에 요청을 보내고, 이를 이용해 클라이언트의 정보를 탈취할 수 있게 된다. 

 

세션 (Session) 

: 쿠키에 포함된 Session ID 를 사용해 서버에 저장된 세션 데이터에 접근하는 방식 

→ 세션 하이재킹 

타 이용자의 쿠키를 훔쳐 인증정보를 획득하는 공격 

세션에 접근해 로그인 정보를 탈취하며 타 이용자의 쿠키를 훔쳐 인증정보를 획득하는 공격이 가능해진다. 

세션 ID만 있으면 로그인되지 않은 페이지에서 로그인 된 상태로 이동할 수 있기 때문!!

'Study > Background' 카테고리의 다른 글

Virtual box VS Docker  (0) 2025.02.25
운영체제 OS  (0) 2025.02.23
인코딩 vs 디코딩  (0) 2025.02.23
Web  (0) 2025.02.23
HTTP  (0) 2025.02.22