[웹서비스 개발팀] CS(쿠키, 세션) 조사

Anna Park·2024년 7월 28일

webservice

목록 보기
26/33

Session

Client와 WebServer 간에 통신 연결에서 활성화된 접속
클라이언트마다 고유의 ID를 뷰여하며 세션 마다 저장된 Data를 이용합니다. 클라이언트 자신만의 고유한 페이지를 열어놓아 생길 수 있는 보안상의 문제를 해결할 수 있습니다.
session을 사용하는 것이 브라우저상에 노출되지 않기 때문에 cookie를 사용하는 것보다 보안측면에서 강력합니다.

import { createStore } from 'redux';
import { sessionService } from 'redux-react-session';
 
const store = createStore(reducer)

const validateSession = (session) => {
  // check if your session is still valid
  return true;
}

const options = { refreshOnCheckAuth: true, redirectPath: '/home', driver: 'COOKIES', validateSession };
 
sessionService.initSessionService(store, options)
  .then(() => console.log('Redux React Session is ready and a session was refreshed from your storage'))
  .catch(() => console.log('Redux React Session is ready and there is no session in your storage'));

Cookies

Server에서 Client에 상태 정보를 저장하고 추출할 수 있는 메커니즘
클라이언트의 매 요청마다 웹 브라우저로부터 서버에서 전송되는 정보패킷의 일종

예를 들면 방문했던 사이트를 다시 방문하면 아이디와 비밀번호가 자동으로 입력되는 현상

사용자 식별, 사용자 정보 유지, 세션 유지에 도움이 됩니다.
클라이언트에 총 300개까지 쿠키를 저장할 수 있으며 하나의 도메인 당 20개의 값만을 가질수 있고 하나의 쿠키값은 4096Byte까지 저장 가능합니다.

차이점

쿠키는 브라우저를 완전히 종료하면 삭제됩니다. 로그인 하는 순간 값이 부여된다는 점에서는 같지만, 값을 부여할 때 세션은 서버 쪽에 정보를 저장하는 반면 쿠키는 클라이언트 쪽에 정보를 저장합니다.
쿠키가 HttpOnly로 표시되면 사이트에 크로스 사이트 스크립팅 취약성이 있는 경우 쿠키의 내용이 보호됩니다. 쿠키에 대한 요청을 처리하기 전에 쿠키를 검증해야 합니다.

코드 및 에러 핸들링 참고할 만한 자료:
https://jacobgrowthstory.tistory.com/34
https://leejungyeoul.tistory.com/80

profile
교육개발, 웹서비스개발, 수학강사

0개의 댓글