Notice
Recent Posts
Recent Comments
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Archives
Today
Total
관리 메뉴

RealMenRoad

쿠키 세션 jwt 차이를 알아 보았다. 본문

카테고리 없음

쿠키 세션 jwt 차이를 알아 보았다.

RealMen 2023. 4. 9. 18:04

쿠키(Cookie)와 세션(Session)은 웹 애플리케이션에서 사용자의 상태를 유지하고 관리하기 위해 사용되는 기술입니다. 각각의 특징과 차이점은 다음과 같습니다.

쿠키(Cookie):

  • 클라이언트(브라우저)에 저장됨
  • 서버에서 발급하고, 클라이언트에서 관리
  • 브라우저마다 쿠키 저장소가 분리되어 있음
  • 만료일자를 지정하여 일정 시간동안 유지될 수 있음
  • 보안상 취약점이 있어 중요한 정보를 저장하면 안됨

세션(Session):

  • 서버에 저장됨
  • 서버에서 발급하고, 서버에서 관리
  • 클라이언트와 상호작용하면서 생성됨
  • 브라우저마다 동일한 세션 ID를 사용하여 서버에서 구분함
  • 브라우저를 닫으면 세션 종료됨
  • 보안상 상대적으로 안전하나, 세션 저장용 공간이 필요함

JWT(Json Web Token):

  • 클라이언트(브라우저)에 저장됨
  • 서버에서 발급하고, 클라이언트에서 관리
  • 토큰 내에 정보를 포함하여 필요한 정보를 서버와 주고받을 수 있음
  • 토큰이 위조되지 않도록 서명을 이용하여 보안성을 확보
  • 유효기간을 지정하여 일정 시간동안 유지될 수 있음
  • 보안상 비교적 안전함

JWT는 쿠키와 세션과는 달리, 서버에서 클라이언트에게 발급한 토큰을 사용하여 인증을 수행합니다. 이 때문에 JWT를 사용하면 서버의 부하를 줄일 수 있고, 여러 개의 서버를 사용하는 분산환경에서도 사용하기 용이합니다. 또한, 클라이언트에서 발급된 토큰을 사용하기 때문에 서버와 클라이언트 간의 상태 정보를 유지할 필요가 없습니다.

그러나 JWT를 사용하는 경우, 토큰을 저장하는 곳이 클라이언트에 있기 때문에 보안 이슈에 주의해야 합니다. JWT 내에 중요한 정보를 포함시키지 않거나, 암호화된 토큰을 사용하거나, HTTPS 프로토콜을 사용하여 전송하는 등의 보안 대책을 마련해야 합니다.

 

외부 블로그 글중에 jwt에 쿠키가 사용되고 있다고 들었는데?? 뭘까

 

JWT에서는 주로 쿠키를 사용하여 JWT 토큰을 저장하고 전송합니다. 서버에서 JWT 토큰을 생성하고 클라이언트로 전송할 때, 보통 HTTP 쿠키를 사용하여 JWT 토큰을 저장하고 전송합니다. 이때, 쿠키에는 JWT 토큰 값이 저장되며, 서버에서는 해당 쿠키를 확인하여 인증 및 인가 작업을 수행합니다.

예를 들어, 사용자가 로그인하면 서버에서 JWT 토큰을 생성하여 HTTP 쿠키에 저장하고, 클라이언트에게 응답합니다. 이후, 클라이언트는 모든 요청에서 쿠키를 전송하여 서버에서 인증 및 인가 작업을 수행하게 됩니다. 쿠키는 브라우저에 저장되어 있으므로, 클라이언트가 브라우저를 종료해도 쿠키는 유지됩니다.

하지만, JWT 쿠키에 저장하면 쿠키를 탈취당할 경우 보안 위험이 있습니다. 따라서, JWT 쿠키에 저장하는 대신, 브라우저의 localStorage sessionStorage 저장하거나, HTTP Authorization 헤더 다른 방법으로 JWT 전송할 수도 있습니다. 경우, 쿠키보다는 보안적으로 안전하지만, 캐싱이나 인증 인가 처리 등의 이슈를 고려해야 합니다.

Comments