2023-07-08 (Cookie, Session)

김현성·2023년 7월 8일

오늘의 공부

목록 보기
13/31
  • Cookie
    • Set-Cookie의 형태로 반환을 받은 쿠키를 토대로 로그인이 필요한 요청을 할 때 마다 받은 쿠키를 던져 요청을 하는 동작 구조
    • 단점
      • 쿠키는 노출이 되었을 때 id, pw에 대한 민감 정보까지 다 노출되어 보안이 좋지 않음.
      • 조작당해서 들어올 가능성이 있음.
      • 웹브라우저간 쿠키에 대한 지원형태가 다름으로 다른 브라우저간에 공유는 불가함.
      • 쿠키의 사이즈가 제한 되어있기떄문에(4KB) 원하는 만큼 충분한 데이터를 담을 수 없음.
      • 서버는 매번 id, pw를 받아서 인증을 해야 하는 불편함이 있으며 조작된 데이터가 넘어오는 경우 방지 할 수 없음.

  • Session
    • id, pw라는 민간정보를 다뤄야 하는 로그인과 같은 보완점을 찾기 위해 나옴
    • 인증정보 자체를 특정 세션 저장소에 저장하고, 이 값을 쿠키에 담아 클라이언트가 쿠키를 요청할 때 마다 세션 저장소에 있는 정보랑 동일한지로 로그인을 확인하자가 주요 핵심
    • 단점
      • 세션 저장소의 문제가 발생하면 인증 체계가 무너져 이전 다른 인증된 유저 또한 인증이 불가해짐
      • stateful 하기 때문에 http의 장점을 발휘하지 못하고 scale out에 걸림돌이 생김.
      • 세션 저장소가 필수적으로 존재하기 때문에 이를 사용하기 위한 비용이듬.
      • 세션 ID가 탈취되었을 경우 대처는 가능하지만 클라이언트 인척 위장하는 보안의 약점이 있을 수 있음.
      • 사용자가 많아질수로 메모리를 많이 차지하게 됨.
      • "매번" 요청 시 세션 저장소를 조회해야 하는 단점이 있음.
profile
내가 이해한 코드가 다른 개발자도 이해한다! 안녕하세요 JAVA 개발자 입니다.

0개의 댓글