기술면접

세션과 토큰 인증 방식 중 각각의 장단점을 말씀해 주세요

검은고양이개발자 2023. 4. 9. 19:36
반응형

Session 인증 방식의 장단점


장점 :

 

- 서버 측에서 유저의 인증 정보를 관리하기 때문에, 보안성이 높습니다.

- 유저의 인증 정보를 서버 측에서 유지하기 때문에, 클라이언트 측에서 인증 정보를 저장하고 관리하는 토큰 방식과 달리 쉽게 탈취될 가능성이 적습니다.

-클라이언트 측에서 인증 정보를 저장하고 관리하는 토큰 방식과 달리, 새로고침이나 브라우저 종료 등으로 인한 세션 만료 기간 설정이 가능합니다.

 

단점:

 

-클라이언트가 요청할 때마다 서버에서 세션 정보를 확인해야 하기 때문에, 서버의 부하가 증가할 수 있습니다.

-서버의 메모리나 데이터베이스에 세션 정보를 저장하기 때문에, 확장성이 떨어질 수 있습니다.

 

 

 

 

Token 인증 방식의 장단점


장점:

 

- 클라이언트 측에서 인증 정보를 저장하고 관리하기 때문에, 서버 측에서 유저의 인증 정보를 저장하고 관리하는 세션 방식보다 서버 부하가 적습니다.

- 클라이언트 측에서 인증 정보를 저장하고 관리하기 때문에, 서버와의 통신이 감소합니다.

- JSON Web Token(JWT)등을 사용하면, 토큰 내에 필요한 정보를 담을 수 있습니다.

 

단점:

 

- 토큰을 탈취당하면, 탈취한 사람이 해당 유저처럼 행동할 수 있습니다. 따라서 토큰은 안전한 방식으로 저장되어야 합니다.

- 세션 방식과 달리, 토큰 만료 시간 설정이 쉽지 않습니다. 만료 시간이 지나면, 다시 로그인을 해야 합니다.

 

 

 

 

 

# 토큰을 안전하게 저장하는 방법

- HttpOnly 쿠키 사용 : JavaScript로 접근할 수 없도록 설정되어 있어, XSS(Cross-Site Scripting) 공격 등으로부터 보호됨

 

- HTTPS 사용 : HTTPS 프로토콜을 사용하여 클라이언트와 서버 간의 통신을 암호화하면, 중간자 공격 등으로부터 보호됩니다.

 

- 토큰 암호화 : 토큰을 암호화하여 저장하면, 토큰을 탈취해도 해당 토큰을 해독할 수 없으므로 보안성이 높아집니다.

 

- 브라우저 저장소 사용: 토큰을 브라우저 저장소에 저장하면, 서버와 통신할 때마다 해당 토큰을 전송해야 하므로 보안성이 떨어지지만, 사용자 편의성이 좋아서 많이 사용된다.

 

 

반응형