카테고리 없음

쿠키와 세션의 차이점

JUNGKEUNG 2024. 5. 29. 15:27
반응형

1. 쿠키 (Cookie)

 


사용자의 브라우저에 저장되고, 통신할 때 HTTP 헤더에 포함되는 텍스트 데이터 파일이다.

이름, 값 만료기간(지정 가능), 경로 정보가 있고 키와 값으로 구성되어 있다

해당 사용자의 컴퓨터를 사용한다면 누구나 쿠키에 입력된 값을 쉽게 확인 가능 -> 보안성이 낮다!

 

 

쿠키 통신 방법

(1) 최초 통신에서는 쿠키값이 없으므로, 일단 클라이언트는 Request 를 한다.

(2) 서버에서 클라이언트가 보낸 Request Header에 쿠키가 없음을 판별.

통신 상태(UserID, Password, 조작상태, 방문횟수 등)를 저장한 쿠키를 Response한다.

(3) 클라이언트의 브라우저가 받은 쿠키를 생성/보존한다

(4) 두번째 연결부턴, HTTP Header에 쿠키를 실어서 서버에 Request 한다

 

 

쿠키 제약 조건

  • 클라이언트는 총 300개의 쿠키를 저장할 수 있음
  • 하나의 도메인 당 20개의 쿠키를 가질 수 있음 ->

20개가 넘으면 가장 적게 사용되는 것부터 삭제됨

  • 하나의 쿠키는 4KB (4096byte) 저장 가능

 

 

쿠키 사용하는 예시

자동 로그인 유지, 위시 리스트 저장, 팝업 보지 않기, 사용자 이전 스크롤링이나 뷰 설정 값 등...

 

 

2. 세션 (Session)


서버에 저장되는 쿠키. 클라이언트와 서버의 통신 상태. 주로 중요한 데이터를 저장 시 사용

브라우저를 종료할 때까지 유지 됨

사용자 로컬이 아닌 서버에 직접 저장되므로, 세션 내의 데이터를 탈취하는 것은 어려움 -> 보안성이 비교적 높음

 

 

세션 통신 방법

(1) 클라이언트가 서버에 접속 시, 세션 ID를 발급한다.

(2) 서버에서는 클라이언트로 발급해준 세션 ID를 쿠키를 이용해서 저장

(3) 클라이언트는 다시 페이지에 접속할 때, 쿠키에 저장된 세션 ID를 서버에 전달

(4) 서버는 Request Header에 쿠키 정보(세션 ID)로 클라이언트를 판별

세션 ID를 클라이언트에 주고받는데, 주로 쿠키를 이용하는 경우가 많다.

 

 

※ SESSION ID 보안의 취약점

  • 세션 해킹 : 홈페이지 관리자의 세션 아이디를 탈취 -> 쿠키값을 관리자의 세션아이디로 변경한다. -> 관리자 권한으로 이용예방법 : 세션에 로그인 했을 때의 IP를 저장 -> 페이지 이동 시마다, 현재 IP와 세션의 IP/브라우저 정보(UserAgent)가 같은지 검사

 

 

사용하는 방식

로그인 정보 유지

  • 쿠키/세션 비교

 

 

 

총정리


1. 쿠키는 클라이언트에 저장되고 세션은 서버에 저장이 된다.

2. 쿠키는 보안이 취약하지만 세션은 쿠키보다 보안성이 좋다.

3. 쿠키는 만료기간을 지정하며 브라우저 종료 시에도 유지되지만 세션은 브라우저 종료시 삭제 된다.

4. 쿠키는 속도가 빠르지만 세션은 느리다

 

 

Sciprt


쿠키는 클라이언트에 저장되고 세션은 서버에 저장이 된다. 쿠키는 보안이 취약하여 중요한 정보는 세션에 저장 되며 쿠키는 만료기간을 지정하여 브라우저 종료시에도 저장이 되지만 세션은 브라우저 종료 시 삭제가 된다. 그러다 보니 쿠키는 처리 속도가 빠르지만 세션은 느리다.

 

 

참고자료


https://f-lab.kr/insight/cookie-vs-session

https://interconnection.tistory.com/74

https://www.youtube.com/watch?v=XgcCkcKGbys