티스토리 뷰

728x90

1. 쿠키란 무엇인가?

쿠키(Cookie)는 웹 브라우저에 저장되는 작은 데이터 조각입니다. 서버는 사용자의 브라우저에 데이터를 저장하고, 브라우저는 이후 요청 시 이 데이터를 서버로 다시 전송합니다.

쿠키의 특징

  • 클라이언트 측 저장: 쿠키는 클라이언트(브라우저)에 저장됩니다.
  • 작은 데이터 크기: 일반적으로 쿠키의 크기는 4KB로 제한됩니다.
  • 유효 기간: 쿠키는 만료 시간을 설정할 수 있습니다. 만료 기간이 지나면 브라우저에서 자동으로 삭제됩니다.
  • 보안: 쿠키는 텍스트로 저장되므로, 민감한 정보를 저장할 때는 암호화가 필요합니다.

쿠키의 사용 사례

  1. 사용자 로그인 유지: 사용자가 로그인한 상태를 유지하기 위해 세션 ID나 인증 토큰을 저장합니다.
  2. 사용자 설정 저장: 언어 설정, 테마 선택 등 사용자의 환경 설정을 유지합니다.
  3. 웹 트래킹: 방문자의 행동을 추적하여 맞춤 광고를 제공하거나 분석 데이터를 수집합니다.

쿠키의 단점

  • 보안 취약점(세션 하이재킹, 크로스 사이트 스크립팅(XSS))
  • 브라우저에 과도한 저장 데이터가 있을 경우 성능 저하
 

2. 세션이란 무엇인가?

세션(Session)은 사용자의 상태를 서버 측에서 관리하는 기술입니다. 사용자가 웹 서버에 연결된 동안 고유한 세션 ID를 통해 데이터를 유지합니다.

세션의 특징

  • 서버 측 저장: 세션 데이터는 서버에 저장되며, 브라우저에는 세션 ID만 전달됩니다.
  • 유효 기간: 기본적으로 세션은 브라우저를 닫으면 만료되지만, 서버에서 설정을 통해 기간을 연장할 수 있습니다.
  • 보안: 데이터가 서버에 저장되므로, 클라이언트 측에 저장된 쿠키보다 보안성이 높습니다.

세션의 사용 사례

  1. 로그인 상태 관리: 사용자가 로그인한 상태를 서버 측에서 유지합니다.
  2. 쇼핑 카트: 사용자가 선택한 상품 정보를 저장합니다.
  3. 사용자 활동 추적: 사용자가 한 번의 세션 동안 수행한 작업을 기록합니다.

세션의 단점

  • 서버 메모리를 사용하므로 많은 사용자를 처리할 때 부하가 증가할 수 있습니다.
  • 분산 서버 환경에서는 세션 데이터를 공유하기 위한 별도 설정(예: Redis, Memcached)이 필요합니다.
 

3. 쿠키와 세션의 차이점

구분쿠키세션

저장 위치 클라이언트(브라우저) 서버
보안성 낮음 (데이터 암호화 필요) 높음 (서버에 저장되므로 더 안전)
데이터 크기 최대 4KB 제한 서버 메모리/스토리지 제한에 따름
유효 기간 만료 시간 설정 가능 기본적으로 브라우저가 닫히면 만료
속도 빠름 (클라이언트에서 처리) 상대적으로 느림 (서버 요청 필요)
사용 사례 사용자 설정 저장, 광고 추적 로그인 상태 유지, 쇼핑 카트 관리

4. 쿠키와 세션의 조합 사용

쿠키와 세션은 서로 배타적인 관계가 아니라, 함께 사용하는 경우가 많습니다. 예를 들어:

  1. 쿠키로 세션 ID 저장: 클라이언트는 서버가 발급한 세션 ID를 쿠키로 저장하고, 서버는 이 ID를 사용해 세션 데이터를 조회합니다.
  2. 세션 기반 로그인: 사용자가 로그인하면 세션에 사용자 정보를 저장하고, 브라우저는 세션 ID를 쿠키로 저장해 인증 상태를 유지합니다.
  3.  

5. 보안 고려사항

  1. 쿠키
    • HTTPS를 사용하여 전송 시 데이터를 암호화합니다.
    • HttpOnlySecure 속성을 설정하여 보안을 강화합니다.
  2. 세션
    • 세션 고정(Session Fixation) 공격을 방지하기 위해 세션 ID를 주기적으로 갱신합니다.
    • 민감한 데이터를 저장할 때는 서버 측 암호화를 사용합니다.
 
728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함