Session 인증 방식의 장단점
장점 :
- 서버 측에서 유저의 인증 정보를 관리하기 때문에, 보안성이 높습니다.
- 유저의 인증 정보를 서버 측에서 유지하기 때문에, 클라이언트 측에서 인증 정보를 저장하고 관리하는 토큰 방식과 달리 쉽게 탈취될 가능성이 적습니다.
-클라이언트 측에서 인증 정보를 저장하고 관리하는 토큰 방식과 달리, 새로고침이나 브라우저 종료 등으로 인한 세션 만료 기간 설정이 가능합니다.
단점:
-클라이언트가 요청할 때마다 서버에서 세션 정보를 확인해야 하기 때문에, 서버의 부하가 증가할 수 있습니다.
-서버의 메모리나 데이터베이스에 세션 정보를 저장하기 때문에, 확장성이 떨어질 수 있습니다.
Token 인증 방식의 장단점
장점:
- 클라이언트 측에서 인증 정보를 저장하고 관리하기 때문에, 서버 측에서 유저의 인증 정보를 저장하고 관리하는 세션 방식보다 서버 부하가 적습니다.
- 클라이언트 측에서 인증 정보를 저장하고 관리하기 때문에, 서버와의 통신이 감소합니다.
- JSON Web Token(JWT)등을 사용하면, 토큰 내에 필요한 정보를 담을 수 있습니다.
단점:
- 토큰을 탈취당하면, 탈취한 사람이 해당 유저처럼 행동할 수 있습니다. 따라서 토큰은 안전한 방식으로 저장되어야 합니다.
- 세션 방식과 달리, 토큰 만료 시간 설정이 쉽지 않습니다. 만료 시간이 지나면, 다시 로그인을 해야 합니다.
# 토큰을 안전하게 저장하는 방법
- HttpOnly 쿠키 사용 : JavaScript로 접근할 수 없도록 설정되어 있어, XSS(Cross-Site Scripting) 공격 등으로부터 보호됨
- HTTPS 사용 : HTTPS 프로토콜을 사용하여 클라이언트와 서버 간의 통신을 암호화하면, 중간자 공격 등으로부터 보호됩니다.
- 토큰 암호화 : 토큰을 암호화하여 저장하면, 토큰을 탈취해도 해당 토큰을 해독할 수 없으므로 보안성이 높아집니다.
- 브라우저 저장소 사용: 토큰을 브라우저 저장소에 저장하면, 서버와 통신할 때마다 해당 토큰을 전송해야 하므로 보안성이 떨어지지만, 사용자 편의성이 좋아서 많이 사용된다.
'기술면접' 카테고리의 다른 글
세션과 쿠키 그리고 토큰 인증 방식에 대해 설명해 주세요. (0) | 2023.04.09 |
---|---|
Session(세션)에 대해 모르는 사람한테 설명하듯 간단하게 설명하시오 (0) | 2023.04.09 |
Spring에서 제공하는 HTTP 클라이언트 라이브러리에 대해 말하시 (0) | 2023.03.13 |
Rest Client 가 무엇인지 설명해 주세요 (0) | 2023.03.13 |
Spring MVC 프레임워크의 요청처리 과정 (0) | 2023.03.13 |