산타는 없다

쿠키와 세션 본문

Computer Science/네트워크

쿠키와 세션

LEDPEAR 2021. 4. 14. 19:19
반응형

쿠키와 세션을 사용하는 이유는 HTTP의 비연결성과 비상태성 때문이다

  • 비연결성 : HTTP 통신 이후로 연결을 끊는 특징
  • 비상태성 : HTTP 통신의 상태를 유지하지 않는다

이로 인해 로그인을 해도 사용자 식별을 할 수 없어서 매번 새로운 사용자로 인식하게된다.
이러한 문제를 해결하기위해 사용하는 방법 중 하나가 쿠키 / 세션 방식이다.

쿠키

서버가 사용자의 웹 브라우저에 저장하는 데이터로 Key, Value(String타입)으로 구성되어 있다.
또한 쿠키는 클라이언트가 서버에 요청할 때마다 자동으로 Header에 포함되어 전송되기 때문에, 서버가 사용자를 식별할 수 있게 도와준다.

하지만 쿠키는 서버가 아닌 브라우저에 저장되기 때문에 보안에 아주 취약하다. 따라서 쿠키에는 민감한 개인정보를 절대 넣지 않아야 한다.

세션

쿠키가 웹 브라우저에 저장되는 데이터라면, 세션은 서버(메모리)에 저장되는 데이터이다. 클라이언트의 접근이 어려워 쿠키보다 보안성이 좁지만 서버의 자원을 사용하기 때문에 세션의 내용이 커질 경우 부하가 걸릴 수 있다는 단점이 있다.

쿠키 - 세션 인증방식

  1. 로그인시 세션에 유저정보를 저장하고 해당 정보의 키로 session_id를 추가한다.
  2. session_id를 요청 HTTP헤더에 쿠키로 설정한다.
  3. 클라이언트에서 서버에 다른 작업 요청시, 서버는 클라이언트에 저장된 session_id를 이용하여 요청한 유저정보를 확인 할 수 있다.

장점

쿠키에는 세션 ID 밖에 들어있지 않아 계정정보를 넣는 것보다 안전하다

서버에서 세션 ID로 세션에 들어있는 유저정보를 확인 할 수 있어서 따로 조회하지 않아도 된다.

단점

세션 ID로 사용자를 판단하기 때문에 세션 ID가 해커의 의해 탈취당할 경우, 해커가 해당 세션 ID를 사용하여 사용자인 척 할 수 있다.

유저정보가 세션 즉, 서버 메모리에 저장 되기 때문에 사용자가 많을 경우 서버에 부하가 걸릴 수 있다.


참고

velog.io/@ground4ekd/auth-cookie-session

반응형
Comments