[Server] Jwt Token vs Session -1- (Session편)
개요
프로젝트를 진행하며, 프로젝트의 목적에 맞는 로그인 방식을 찾기 위해 공부한 Jwt Token을 통한 로그인과 Session을 통한 로그인 방식의 차이점을 알아본다. 그 중, 1편에서는 Session에 대해 이해하고 공부한다.
목차
소개
1. Cookie 란?
Cookie 란?
Cookie란, 브라우저가 저장하고자 하는 텍스트정보를 담은 작은 기록 정보 파일이다. 유저는, 특정 웹 브라우저에 접근 할 때, 이전에 받은 Cookie정보와 함께 서버에 요청을 하게 되며, 서버는 쿠키의 유효성을 확인하여 로그인을 유지해주는 역할을 할 수 있게 된다.
Cookie의 보안 이슈
- http only Cookie가 아닌, 일반 쿠키는 유저가 임의의 값으로 변경할 수 있다.
- 악성코드를 통해 Cookie를 탈취당할 수 있다.
- 유효기간이 없는 Cookie라면, 한번 탈취 후 계속하여 사용할 수 있다.
2. Session 이란?
Session 이란?
Session이란, 위에서 언급된 Cookie의 보안이슈를 해결하고자 등장한 개념으로, "일정 시간동안 같은 브라우저(사용자)로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 일정하게 유지시키는 기술" 이라고 할 수 있다. 즉, 사용자가 같은 웹 브라우저로 로그인을 성공한다면, 일정 시간동안 로그인 상태를 유지시켜주는 것 이라고 할 수 있다.
Cookie를 활용한 Session 로그인 방식의 동작 순서
- 클라이언트가 특정 웹 사이트(서버)에 접속(Http request)을 요청한다.
- 서버는 Cookie를 확인해, 존재여부를 확인한다.
- Session id를 담은 Cookie가 함께 넘어왔다면, Session id를 확인해, 유효 시간을 확인하고 유효성이 확인된다면, Session id와 mapping 되어 있는 User의 정보를 가져와 작업을 수행한다.
- Session id를 담은 Cookie가 함께 넘어오지 않았다면, 로그인을 이어주지 않고, 로그인 요청이 들어올 때, 서버는 Session id를 생성하여 브라우저(사용자)에게 새로운 Cookie를 발급하고 Session 정보를 서버에 저장한다.
'Back End > Server' 카테고리의 다른 글
[Server] node.js 자동 로그인 구현 (Cookie + Session 활용) (2) | 2022.02.23 |
---|---|
[Server] node.js 비밀번호 초기화 API 구현 (0) | 2022.02.12 |
[Server] Open API인 KaKao Map을 이용하여 위도 경도 얻기 (0) | 2022.02.10 |
[Server] Open API인 KaKao Map을 이용하여 위치를 지도에 표시하기 (0) | 2022.02.06 |
[Node.js vs Spring] Node.js vs Spring의 차이 (5) | 2021.12.28 |