쿠키 Cookies 🍪
HTTP 프로토콜의 주된 특징은 1. connectionless 와 2. stateless 였다.
따라서 웹 서버는 클라언트를 매번 기억할 수 없다. ( 클라이언트의 IP 주소와 User-Agent 는 매번 변경 가능)
HTTP 프로토콜 특징
|
이러한 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 |