시스템 지식/보안

[세션 쿠키] 로그인 보안을 위한 세션 쿠키

Dachaes 2025. 4. 22. 23:31

세션 쿠키(Session Cookie) 

웹사이트에서 로그인한 뒤 브라우저를 껐다 켰더니 로그인이 풀린 경험, 한 번쯤 있으셨을 거예요. 이는 대부분 세션 쿠키(Session Cookie) 때문입니다. 세션 쿠키는 사용자 인증과 세션 유지의 핵심 도구로, 일시적인 정보 저장에 적합합니다.

이 글에서는 세션 쿠키의 개념과 특징, 일반 쿠키와의 차이, 그리고 개발 시 언제 세션 쿠키를 사용할지에 대해 자세히 설명합니다.

 


1.  세션 쿠키란?

세션쿠키는 브라우저가 켜져 있는 동안만 유지되는 쿠키입니다. 즉, 사용자가 브라우저를 닫는 순간 쿠키는 자동으로 삭제됩니다.

  • 저장 위치 : 사용자의 브라우저 메모리
  • 만료 시점 : 브라우저 종료 시
  • 사용 예시 : 로그인 세션, 임시 필터 정보, 쇼핑 카트 임시 저장 등

세션 쿠키의 동작 원리

  1. 사용자가 로그인하면 서버는 세션 ID를 생성합니다.
  2. 서버는 이 ID를 쿠키로 내려보냅니다.
  3. 클라이언트는 이 값을 세션 쿠키로 저장합니다.
  4. 사용자가 브라우저를 종료하면, 쿠키는 사라지고 인증도 종료됩니다.

예시

document.cookie = "userId=dachae; path=/";
  • 위처럼 expires max-age 를 지정하지 않으면, 이 쿠키는 세션 쿠키가 됩니다.

 


2.  세션 쿠키 vs 일반 쿠키

구분 세션 쿠키 (Session Cookie) 지속 쿠키 (Persistent Cookie)
저장 위치 브라우저 메모리 브라우저 로컬 스토리지 (디스크)
유지 기간 브라우저 종료 시 삭제 명시된 만료일까지 유지
설정 방식 expires 없이 설정 expires 또는 max-age 포함
사용 용도 임시 인증, 일시적 상태 자동 로그인, 장기 설정 저장

 


3.  코드 예시 - 로그인 세션 유지

// 세션 쿠키 설정 (브라우저 꺼지면 사라짐)
document.cookie = "isAuthenticated=true; path=/";

// 지속 쿠키 설정 (하루 유지)
document.cookie = "isAuthenticated=true; expires=" + new Date(Date.now() + 86400000).toUTCString() + "; path=/";

차이점은 expires 속성의 유무입니다.

 


4.  언제 세션 쿠키를 사용할까?

  1. 보안이 중요한 경우 : 브라우저가 닫히면 자동으로 로그아웃되길 원할 때
    예) 공용 컴퓨터에서 사용하는 은행 웹사이트, 관리자 페이지
  2. 일시적인 상태 저장 : 필터 선택, 검색 조건 등 사용자가 새로고침하거나 다른 페이지로 이동할 때만 유효한 값
    예) 임시 검색 조건, 모달 열림 여부
  3. 자동 로그인 방지 : 로그인 유지가 필요하지 않은 서비스에서는 세션 쿠키만 사용해 자동 로그인을 방지

 


5.  보안 관점에서의 주의사항

세션 쿠키는 자동 삭제된다는 장점이 있지만, 기본적으로 문자열로 클라이언트에 저장되는 것이기 때문에 다음을 주의해야 합니다:

a.  HttpOnly 설정

  • 자바스크립트에서 접근 불가능
  • XSS(크로스사이트스크립팅) 방어에 효과적
  • 이 설정은 서버 측에서만 적용 가능

b.  Secure 설정

Set-Cookie: sessionId=abc123; Secure
  • HTTPS 연결에서만 쿠키 전송
  • 평문 전송을 막아 정보 유출 방지

c.  SameSite=Strict

Set-Cookie: sessionId=abc123; SameSite=Strict
  • CSRF 공격 방지
  • 외부 사이트에서 쿠키를 보내는 요청 제한

 


6.  마무리

항목 내용
세션 쿠키란? 브라우저 종료 시 사라지는 일시적 쿠키
사용 시점 보안이 중요하거나, 일시적 상태 저장이 필요할 때
설정 방식 expires 없이 설정 시 자동으로 세션 쿠키
보안 팁 HttpOnly, Secure, SameSite 옵션을 서버에서 함께 설정할 것

함께 보면 좋은 자료

블로그 글 : 

 

[웹 저장소] localStorage, sessionStorage, Cookie 의 차이와 사용법

localStorage, sessionStorage, Cookie 웹 페이지에서 데이터를 저장해야 할 때 localStorage, sessionStorage, cookie 중 무엇을 선택해야 할지 고민되시나요? 이 세 가지는 저장 위치는 같지만, 수명, 용량, 사용 목

dachaes-devlogs.tistory.com