Notice
Recent Posts
Recent Comments
Link
관리 메뉴

look-forest

Session을 활용한 인증 본문

Web/Technique

Session을 활용한 인증

studyHub 2021. 1. 28. 11:39

intro

중요 정보를 쿠키로 브라우저에 저장하면 보안상 위험하다

 

Session이란?

세션 데이터는 쿠키 자체에 저장되지 않고 세션 ID 저장. 세션 데이터는 서버 측에 저장!

- 브라우저 쿠키를 이용해 사용자를 식별하는 식별자만 저장(세션 ID = 사용자를 식별하는 쿠키 값)

- 실제 데이터 서버쪽 안전하게 파일이나 db 저장

 

 

session 도입하기

 

session 동작 방식

1. 처음엔 request header에 sessionIdsessionId 없음 -> response header 전달받음

2. 브라우저에 쿠키값으로 저장

3. 이후 request header sessionId 전달

4. session을 프로그래밍적으로 활용하기

  • request.session 객체의 데이터 활용 (request 쿠키 값(sessionId)로 DB 세션정보를 가져옴)
  • request.session.destroy(callback);으로 세션 제거

 

session store

Session data 기본적으로 서버의 메모리에 저장됨. 서버를 꼇다 키면 날라감.

->DB, file 등에 세션 정보 저장 가능

session data를 file에 저장한 경우
file의 내용. session data. :  쿠키 및 데이터가 저장된다

*session store에 저장 시 코딩한 내용이 세션에 반영이 안 될 경우

반영이 안되는게 아니라 write이 느려서 늦게 반영되는 것이었다.

 

 

session을 활용한 인증 개요

일반적으로 사용자 인증에 사용되는 자격 증명은 로그인 요청 중에만 전송됨.

인증이 성공하면 브라우저에 설정된 쿠키를 통해 세션이 설정되고 유지됨.

후속 요청에는 자격 증명이 아니라 세션을 식별하는 고유한 쿠키가 포함됨.

 

1. 사용자 정보 객체를 세션에 식별자로 저장

로그인 시 session에 user 객체의 식별자가 주입된다.

 

2. 이후 요청마다 session에 저장된 식별자를 통해서 사용자 정보 객체를 불러옴

id <- session의 "user" 식별자

 


참고

- 생활코딩

 

출처

- http://www.passportjs.org/docs/configure/

- https://www.npmjs.com/package/express-session

'Web > Technique' 카테고리의 다른 글

오픈 API 사용  (0) 2021.02.18
Ajax  (0) 2021.02.12
Frontend와 backend 연결하기 feat.CORS  (0) 2021.01.29
Federated Identity  (0) 2021.01.28
Token을 활용한 인증  (0) 2021.01.28