쿠키와 세션

박총명·2025년 2월 28일
post-thumbnail

🎈쿠키

사용자가 특정한 웹 사이트에 방문할 때, 사용자 컴퓨터(클라이언트)에 저장하는 기록 파일

HTTP에서 클라이언트의 상태정보를 클라이언트의 PC에 저장하였다가 필요시 정보를 참조하거나 재사용할 수 있다.
ex) "아이디와 비밀번호를 저장하시겠습니까?"
ex2) "오늘 이 창을 다시 보지 않기" 체크

특징

  • 서버의 자원을 전혀 사용하지 않는다.
  • 이름, 값, 만료일, 경로 정보로 구성되어 있다.
  • 클라이언트에 총 300개의 쿠키를 저장 가능하다.
  • 하나의 도메인 당 20개의 쿠키를 가질 수 있다.
  • 하나의 쿠키는 4KB까지 저장 가능하다.

보안 고려사항

위험
XSS(크로스 사이트 스크립팅) 공격, 쿠키 탈취 등의 보안 위협 노출 가능성이 있다.

Why?
쿠키 데이터가 암호화되지 않은 채로 전송될 수 있기 때문이다.

How?
1. 중요한 정보는 쿠키에 저장하지 않기
2. 가능하다면 HTTPS를 통해 쿠키를 전송하기
3. HttpOnly와 Secure 속성을 쿠키에 설정하기

🎈세션

한명의 사용자의 상태를 유지하는 기술

서버가 클라이언트에게 고유한 Session ID를 부여하면, 클라이언트는 접속할 때마다 Session ID와 함께 요청한다.
ex) 웹 사이트에 한 번 로그인 하면, 다른 페이지로 이동해도 계속 접속 상태가 유지된다
ex2_How) 웹사이트 로그인 -> 서버에서 세션 ID에 따른 회원 ID 정보를 기록 -> 클라이언트는 해당 세션을 계속 유지한다(메일함에 접속할 때도 세션ID를 서버에 전송) => 즉 세션은 자신이 누구인지를 서버에 알려주는 역할을 수행한다.

특징

  • 서버에서 가지고 있는 객체로, 특정 사용자의 로그인 정보를 유지하기 위해 사용할 수 있다.
  • 브라우저를 닫거나 서버에서 세션을 삭제했을 때만 삭제가 되므로, 쿠키보다 비교적 보안이 좋다.
  • 만약 Session ID를 다른 클라이언트에게 탈취당하면, 다른 사람이 자신의 행세를 할 수 있다. 한번 탈취당하면 많은 권한을 탈취당하는 경우가 많아 회원 정보 확인이나 개인 정보 수정과 같은 페이지에 접속할 때는 별도로 아이디와 패스워드를 한 번 더 확인하여 별도의 토큰을 발급하는 과정을 사용하기도 한다.

인증 방식

장점

  • 클라이언트에게는 세션 ID(회원 식별 목적)을 제공하고, 회원에 대한 중요한 정보를 서버가 가지고 있다.
  • 민감한 데이터를 클라이언트에 직접적으로 보내지 않는다.
  • 클라이언트 브라우저가 가지고 있는 세션 ID 자체에는 개인정보를 포함하고 있지 않다.

단점

  • 악의적인 공격자가 세션 ID를 탈취하여 사용자인 척 위장할 수 있다.
  • 웹 서버에 세션 정보를 기록하고 있어야 하므로, 접속자가 많을 때 서버에 메모리 부하가 존재할 수 있다.

보안 고려사항

위험
세션 하이재킹(세션을 악용하여 컴퓨터 시스템의 정보나 서비스에 대한 무단 액세스를 얻는 것) 공격에 노출 가능성이 있다.

Why?
서버를 사용하기 때문에 서버 클라이언트 통신 시 TCP 시퀀스 넘버를 이용하기 때문이다.

How?
1. 세션 ID의 재생성하기
2. 세션 데이터를 암호화하기

🎈쿠키와 세션의 차이점

(가장 큰 차이점은 데이터가 저장되는 위치)
쿠키 : 클라이언트 측의 웹브라우저에 저장된다.
세션 : 서버 측에 저장된다.

쿠키 : 사용자의 브라우저를 통해 서버와 데이터를 주고받기 위해 설계되었다.
세션 : 서버에서 사용자의 상태를 유지하기 위해 사용된다.

쿠키 : 사용자가 직접 삭제하지 않는 한 만료 기간이 지나기 전까지 유지된다.
세션 : 사용자가 로그아웃하거나 브라우저를 닫는 등의 행동으로 종료된다.(사용자의 상태를 일시적으로 관리하기 위한 목적으로 사용되기 때문이다.)

쿠키 : 클라이언트 로컬에 저장되기 때문에 보안에 취약하다.
세션 : 세션 ID만 저장하고 구분하여 서버에서 처리하기 때문에 비교적 보안성이 좋다.

쿠키 : 서버에 요청시 속도가 빠르다(정보가 클라이언트에 있기 때문)
세션 : 처리 속도가 비교적 느리다(정보가 서버에 있기 때문)

참고자료

인증 방식 이미지 출처
세션 하이재킹
쿠키와 세션 보안
쿠키 특징
멋사 세션인증

0개의 댓글