본문 바로가기

JWT

인증 방식 종류(Cookie & Session & Token)

728x90
반응형
SMALL

대표적으로 서버가 클라이언트 인증을 확인하는 방식 세가지

 

1. Cookie (쿠키)

2. Session (세션)

3. Token (토큰) 

 

 

Cookie 인증

 

쿠키는 Key-Value 형식의 문자열 덩어리이다.

사용자가 웹사이트를 접속 할 때, 접속 된 사이트가 사용하고 있는 서버를 통해 사용자의 브라우저 안에, 생성되는 정보 기록 데이터이다.

 

Cookie 인증 방식의 단점

 

1. 서버에 계속적으로 요청을 보낼 시, 쿠키의 값을 그대로 보내기 때문에 조작 및 유출의 위험성이 높음.

 

2. 용량 제한이 있어 , 많은 데이터 정보를 담을 수 없다.

 

3. 쿠키의 사이즈가 커질 수록, 네트워크 성능 부하가 심해진다.

 

 

Session 인증

 

Cookie 인증의 보안적인 이슈를 보완하기 위해, Session 인증 방식은 사용자의 민감 인증 정보를 브라우저가 아닌 서버에 저장 및 관리한다. (서버 메모리 혹은 로컬 파일 및 데이터베이스에 저장함.)

 

 

세션 객체에는 Key에 해당하는 session id와 대응하는 value로 구성되어 있다.

value 안에는 1. 세션 생성시간 2. 접근 시간 3. user가 저장한 속성 등 이 map 형태로 저장된다.

 

 

Session 인증 방식의 단점

 

1. 해커가 세션 id 자체를 탈취하여 사용자인척 위장할수 있다. (서버에서 ip 특정을 통해 해결가능함.)

 

2. 서버에서 관리하기 때문에, 세션 저장소를 따로 이용하기에 요청이 많아지면 많아질수록 서버 부하가 심해진다.

 

 

Token 인증

 

토큰 기반 인증 시스템은 사용자가 서버에 접속을 하면, 서버에서 해당 사용자에게 인증되었다는 의미로 '토큰'을 부여한다.

이 토큰은 고유한 값이며, 사용자가 다시 서버에 요청을 보낼때, 헤더에 토큰을 심어서 보낸다.

서버 요청이 있을때마다, 서버에서는 이 사용자가 가지고 있는 토큰 정보를 확인 후 일치 여부 체크를 하여 인증을 해준다.

 

토큰은 서버가 아닌 클라이언트에 저장 되기 때문에, 메모리나 스토리지 등을 통한 세션을 관리했던 서버의 부담을 덜 수 있다.



 

Token 인증 방식의 단점

 

1. 토큰 자체의 데이터 길이가 길어서, 인증 요청이 많아질수록 네트워크 부하가 심해진다.

 

2. payload 자체는 암호화가 되지 않아, 유저의 중요한 정보를 담을 수 없다.

 

3. 토큰 탈취 시, 대처하기 어렵다. (토큰 유효기간을 두어 어느정도 해결할수있다.)

728x90
반응형
LIST

'JWT' 카테고리의 다른 글

JWT (JSON Web Token) 란? (간단 설명)  (0) 2022.09.19