본문 바로가기

플젝 구현내용 정리

프로젝트에서 쿠키(Cookie)와 세션(Session)을 적용한 사례 정리

728x90
반응형

최근 수행한 SI 프로젝트에서 보안을 강화하기 위해 쿠키와 세션을 활용한 사례가 있다.

 

이 프로젝트에서는 사용자 인증과 세션 관리를 통해 보안성을 높였고, 구현 사례는 아래와 같다.

 

먼저, 사용자가 로그인하면 서버는 사용자에게 고유한 세션 ID를 생성하여 쿠키에 저장한다.

이 쿠키는 클라이언트 측에 저장되며, 이후 요청 시마다 서버로 전송된다. 서버는 이 세션 ID를 통해 사용자를 식별하고, 세션 정보를 조회한다. 조회 후 정상적인 요청이면 로그인을 수행하고, 비정상적인 요청이라면 거부한다.

 

특히, 세션 정보는 AWS Elasticache에 저장하여 관리했는데,  AWS Elasticache는 인메모리 데이터 저장소로, 빠른 속도로 세션 데이터를 읽고 쓸 수 있어 성능을 향상시킨다. 또한, 분산 환경에서 세션 데이터를 중앙에서 관리할 수 있어 확장성과 안정성을 보장 하므로 매우 안정적이다.

 

이러한 방식으로 쿠키와 세션을 활용하여 사용자 인증을 수행함으로써, 프로젝트의 보안성을 강화 할 수 있었다.

 

그러면 쿠키와 세션의 실제 값 예시는 보면 다음 과 같다:

 

쿠키:

Set-Cookie: sessionId=abc123; Path=/; HttpOnly; Secure; SameSite=Strict

 

세션 (AWS Elasticache에 저장된 데이터):

{
  "sessionId": "abc123",
  "userId": "user456",
  "expires": "2023-12-31T23:59:59Z",
  "data": {
    "username": "exampleUser",
    "roles": ["admin", "user"]
  }
}

 

추가로, 그러면 왜 굳이 쿠키 값을 클라이언트에 저장할까?

 

쿠키는 클라이언트 측에 저장되므로, 서버 부하가 적고 확장성이 뛰어나며 설정이 간편하기 때문이다.

 

- 끝 -

728x90
반응형