세션 VS 토큰 Session vs Token Based Authentication

YEA·2022년 11월 30일
0

wecode

목록 보기
5/8

HTTP 방식
.요청과 응답에 의해 동작
.특징은 stateless 상태없음
.각각의 HTTP는 독립적 = 과거의 내용 알지 못함
.매 통신마다 필요한 정보를 담아서 요청 보내야 한다.

매번 같은 내용 실행으로 피로도 쌓임 불편함발행
=> session cookie token 같은 기술이 사용된다

Session

session
.동일클라이언트 브라우저통해 웹서버접속 ~ request ~ 브라우저 종료 =>ㅏ나의 상태로 본다
.상태를 일정하게 유지해 논리적으로 연결된 상태를 뜻한다.
.

cookie
.클라이언트 컴퓨터에 저장되는 데이터
.이름 값 만료날짜 시간(저장기간) 경로
.하나의 도메인당 20개, 1개당 4kbyte 넘길 수 없다.
.서버는 HTTP response header set-cookie속성을 이용해 클라에 cookie를 제공
.클라이언트 HTTP request 저장된 cookie 전달해 이전통신에서 사용된 정보들을 파악 힐 수 있다.

쿠키를 통해 사용자 별로 다른 정보를 표시하는 것이 가능하고
사용자의 패턴을 분석 할 수 있기 때문에
최근들어 더욱 중요한 개념이 되었습니다.

장점

유의미한 개인 정보를 담고있지 않는다.
서버에서 정보를 관리하기 떄문에 데이터 손상 우려에 대해 상대적으로 안전
서버상태 유지함 사용자의 로그인 여부 확인 쉬움
경우에 따라 강제 로그아웃등이 제재를 가할 수 있다.

단점

서버에서 모든 사용자의 상태를 관리 사용자 증가 할 수록 서버에 가해지는 부하가 증가
사용자 증가 서버의 scale out 해야할때 session관리가 어려워짐
모바일 기기와 브라우저 공동상용시 중복 로그인 처리가 어렵낟.
신경써야 하는 부분들 증가

Token

이용할 권리
권한을 캡슐화
접근가능 리소스 범위 , 접근 가능기간 통제가능

FLOW
.인증정보가지고 인증 요청
인증완료 session대신 token발급
token을 local storage 저장
사용자 request를 할때마다 저장된 token 을 header에 포함시켜 서버에 보냄
서버는 사용자로 부터 전달받은 header의 token정보를 verification한뒤 권한 인가

장점

사용자가 저장 서버나 메모리 BD부담 줄어듬
사용자 상ㅌ태 정보 서버에 관리 X scale out(서버확장) 에 용이
token만료 시간을 짧게 설정시 안정성을 높일 수 있다.
CORS방식 사용용이

단점

강제로그아웃등 제재를 가하기 어렵다.
사용자 임의 토큰 수정/ 구조변경될시 서버에서 확인 불가
payload부분 사용자 식별 정보 포함 = session id 보다 길어져 HTTP request전송 데이터 증가
XSS공격 취약
payload 민감정보 포함시 위험할 수 있다.

profile
yoon

0개의 댓글