[CS] 쿠키 & 세션

ina·2022년 1월 10일
0
post-thumbnail

쿠키와 세션 사용 이유

  • 현재 우리가 인터넷에서 사용하고 있는 HTTP프로토콜은 연결 지향적인 성격을 버렸기 때문에 새로운 페이지를 요청할 때마다 새로운 접속이 이루어지며 이전 페이지와 현재 페이지 간의 관계가 지속되지 않는다
  • HTTP 프로토콜을 이용하게 되는 웹사이트에서는 웹페이지에 특정 방문자가 머무르고 있는 동안에 방문자의 상태를 지속시키기 위해 쿠키와 세션을 이용한다

쿠키(cookie)

  • 웹사이트에 접속할때 생성되는 정보를 담은 임시파일
  • 서버가 사용자의 웹 브라우저에 저장하는 데이터
  • key와 value로 구성 , String형태
  • 쿠키는 서버를 대신해서 생성되는 정보들을 웹브라우저(사용자가 사용하고 있는 컴퓨터)에 저장하고 사용자가 요청을 할때 그 정보를 함께 보내서 서버가 사용자를 식별할 수 있게 한다
  • #상태 유지 및 관리 #사용자 인증 수단

쿠키의 사용목적

  • 세션관리(Session Management)
    로그인, 접속시간, 장바구니 등 서버가 알아야 할 정보들을 저장
  • 개인화(Personalization)
    사용자마다 다르게 개인 페이지를 보여준다
  • 트랙킹(Tracking)
    사용자의 행동과 패턴을 분석하고 기록한다

쿠키의 종류

  • 지속쿠키(Persistent Cookie)
  • 세션쿠키(Session Cookie)
  • 만료 일시가 없음
  • 항상 key와 value가 유지
  • 파일로 저장되어 항상 쿠키 유지
  • 만료일시를 저장하고 만료되면 값이 사라짐
  • 브라우저 메모리에 저장되어 브라우저 종료시 쿠키 소멸

지속쿠키의 단점과 해결

  • 단점
    쿠키를 폐기해도 해당 value와 key를 알고 있으면 재사용 가능
    쿠키의 값이 평문일 경우 변조의 위협

  • 해결
    세션쿠키로 해결 → 하지만 세션쿠키를 이용하면 서버에 부담이 크기 때문에 서버에 부담이 적은 지속쿠키 사용을 선호하는 편이며 웹서비스와 인프라 구성에 알맞게 세션쿠키를 사용한다


세션(Session)

  • 서버에 웹 컨테이너의 상태를 유지하기 위한 정보를 저장
  • 브라우저를 닫거나, 서버에서 세션을 삭제했을 때 삭제되므로, 쿠키보다 보안이 좋다
  • 저장데이터에 제한이 없다
  • 각 클라이언트의 고유세션ID를 부여한다
  • 세션ID로 클라이언트를 구분하여 각 클라이언트 요구에 맞는 서비스를 제공한다

쿠키와 세션의 차이

쿠키(cookie)세션(session)
저장위치클라이언트서버
라이프사이클지속쿠키: 항상 유지 /세션쿠키: 만료일시 혹은 브라우저 종료시서버 만료 또는 브라우저 종료 시 세션아이디 만료 소멸
보안탈취, 변조의 위협비교적 안전
속도빠름비교적 느림 ( 세션 아이디를 이용하여 데이터를 참조하기 때문)

세션보다 쿠키를 선호하는 이유

  • 세션은 세션 아이디를 이용해 데이터를 참조하기 때문에 사용자가 많을 경우 소모되는 자원이 많아 서버에 부담이 된다
  • 웹서비스와 인프라의 구성에 맞게 세션과 쿠키를 적절하게 병행 사용하여 서버자원의 낭비를 줄이고 웹사이트의 속도를 높일 수 있다

참고 자료
강의 :
Udemy - 반드시 알고 넘어가야 할 웹 기술 기초편 (크리핵티브 정보보안 교육)

profile
🐢 💨 💨

0개의 댓글