웹 기술 기초

웹 기술 기초 5(쿠키와 세션)

ishoe 2021. 4. 12. 19:51

쿠키와 세션

상태 유지 및 관리의 필요성

한 번의 로그인을 통해 다른 페이지 접근 시 사용자에 대한 상태 정보가 유지된다. 사용자 인증 수단 및 상태 유지 및 관리를 위해서는 쿠키가 사용된다.

쿠키

사용자 식별 및 세션 유지를 통해 클라이언트와 서버 간의 상태 관리를 한다.

종류는 지속 쿠키, 세션 쿠키가 있다.

쿠키 헤더 구조

서버에서 클라이언트로 쿠키 발급 시 Set-Cookie헤더에 의해 클라이언트 쿠키 값이 세팅. 이후 해당 사이트 접근 시마다 클라이언트는 Set-Cookie에 의해 세팅된 값을 Cookie 헤더에 세팅하여 요청 메시지를 전달. 서버는 이를 통해 상태 관리를 한다.

지속 쿠키(Persistent Cookie)

웹 서버에서 발급 시 클라이언트 하드 디스크에 텍스트 형태로 저장, 클라이언트 PC사용자들은 해당 쿠키 정보를 열람 가능

지속 쿠키 발급 과정

     사용자 ------------------> 웹 어플리케이션 서버

사용자가 로그인 하기 위해서 서버에 요청을 한다.

     사용자 <------------------ 웹 어플리케이션 서버

서버가 응답 값에 Set-Cookie해더에 사용자 아이디를 세팅한다. 이 값을 받을 사용자는 해당 사이트에 대한 쿠키값을 세팅한다.

     사용자 ------------------> 웹 어플리케이션 서버

사용자가 해당 사이트에 재접근시 웹브라우저에서 해당 사이트에 대한 쿠키값을 쿠키 해더를 통해서 세팅한다. 그러면 서버에서 사용자 식별을 한다.

지속 쿠키 폐기 과정

     사용자 ------------------> 웹 어플리케이션 서버

사용자가 로그아웃요청을 하면 서버 측 에서는 Set-Cookie해더에 삭제시킬 값을 delete로 세팅해준다. 그러면 ID 값이 사라진다.

ex) Set-Cookie: id=deleted;

지속 쿠키 문제점

폐기 후에도 해당 값을 알고 있으면 재사용이 가능

쿠키 값이 평문일 경우 변조의 위협. 사용자 식벼 및 인증 관리를 할 경우 반드시 암호화 과정을 거쳐야 한다.

유효기간에 따른 폐기 방법, 암호화 알고리즘에 대한 적절성

세션 쿠키

웹 서버에서 발급 시 클라이언트 웹 브라우저 케시에 저장

정상적으로 로그인 시 웹 어플리케이션 서버는 서버 측에 해당 세션에 대한 정보 저장. 저장방법은 메모리, 파일 시스템, 데이터베이스에 저장. 일반적으로 메모리에 저장

문자가 암호화, 난독화 되어있는 형태가 아닌 임이의 문자들이 무작위로 나열된 것. 공격자 측에서 특정 사용자의 세션을 추측하기 어렵다.

세션 발급 과정

의미 없는 세션값이 로그인이라는 기능을 통해 의미 있는 값으로 변하게 되어서 매핑 정보로 담기게 된다. Set-Cookie를 통해서 세션 값을 실어 둔다. 그러면 세션 값을 갖고 서버가 사용자를 인식을 한다.

세션 폐기 과정

서버에 있는 의미있는 세션이었던 값을 지우면 의미 없는 세션이 된다.

지속 쿠키의 필요성

대규모 웹 서비스의 경우 수많은 사용자들의 세션을 관리하기에는 서버에 엄청난 부하를 가져온다.

 

출처: 크리핵티브

강의 사이트: inf.run/WuCF

 

[무료] 반드시 알고 넘어가야 할 웹 기술 기초편 - 인프런 | 강의

웹 기술 기초를 익힐 수 있는 강좌로 단 시간에 웹 기술 기초를 익히실 수 있습니다. 웹 관련 공부 혹은 취업을 희망하시는 분은 반드시 본 강좌를 수강하세요!, 🗒 강의소개 본 강의는 웹 기술

www.inflearn.com