본문 바로가기
개발/ETC

로그인 세션, 토큰 장단점

by devhooney 2023. 4. 22.
728x90

로그인 세션 방식과 토큰 방식은 모두 사용자 인증과 권한 부여에 사용되는 인증 방법 


로그인 세션 방식:

 

장점:
보안성: 로그인 세션 방식은 세션 ID를 서버 측에서 관리하기 때문에 보안성이 높다.

사용자 인증 정보가 브라우저에 저장되지 않으므로, 쿠키 탈취 등의 보안 위협에 취약하지 않다.


적용 범위: 로그인 세션 방식은 모든 웹 애플리케이션에서 사용할 수 있다.

단점:
성능: 로그인 세션 방식은 서버에서 세션 정보를 유지하기 때문에 서버 부하가 증가할 수 있다. 또한, 매 요청마다 세션 ID를 서버에서 검증해야 하므로 네트워크 대역폭도 증가한다.
확장성: 로그인 세션 방식은 클러스터링 및 로드 밸런싱과 같은 서버 확장성 문제가 있다.

 


토큰 방식:

 

장점:
보안성: 토큰 방식은 토큰을 브라우저에 저장하고, 서버는 이 토큰을 사용하여 사용자 인증을 한다.

토큰이 브라우저에 저장되므로, 쿠키 탈취와 같은 보안 위협에 노출될 가능성이 낮다.


확장성: 토큰 방식은 클러스터링 및 로드 밸런싱과 같은 서버 확장성 문제를 해결할 수 있다.
다양한 클라이언트: 토큰 방식은 다양한 클라이언트, 예를 들어, 웹 애플리케이션, 모바일 애플리케이션 및 RESTful API에서 사용할 수 있다.

단점:
보안성: 토큰이 탈취되면 공격자는 해당 사용자로 위장하여 서비스를 이용할 수 있다. 따라서, 토큰의 보안성을 유지하는 것이 매우 중요하다.


복잡성: 토큰 방식을 구현하기 위해서는 추가적인 인프라스트럭처와 로직이 필요할 수 있다. 또한, 토큰을 사용하여 사용자 인증을 수행하므로, 일정 시간이 지나면 토큰 방식을 사용하면 토큰의 만료 기간을 확인하고 갱신하는 로직을 구현해야 한다.


토큰 크기: 로그인 세션 방식에 비해 토큰 방식의 토큰 크기가 더 크다는 단점이 있다. 토큰이 네트워크를 통해 전송되어야 할 때, 더 많은 대역폭이 사용될 수 있다.


로그아웃 관리: 로그인 세션 방식에서는 세션을 서버에서 관리하므로, 로그아웃을 서버에서 처리할 수 있다. 하지만 토큰 방식에서는 토큰이 클라이언트에 저장되어 있기 때문에, 로그아웃을 클라이언트에서 처리해야 한다.

 


요약하면, 로그인 세션 방식은 보안성이 높고, 모든 웹 애플리케이션에서 사용할 수 있지만 서버 부하와 확장성의 문제가 있다.

반면에 토큰 방식은 확장성이 높고 다양한 클라이언트에서 사용할 수 있지만 토큰의 보안성과 복잡성에 대한 고려가 필요.

따라서, 애플리케이션의 요구사항과 보안 요건을 고려하여 로그인 세션 방식 또는 토큰 방식 중 적합한 방식을 선택해야 한다.

728x90