쿠키와 세션 그리고 토큰

KingDoor·2022년 9월 22일
0

HTTP의 특성상 무상태(Stateless) 하기 때문에
서버는 클라이언트를 식별할 수 가 없다.

서비스를 운영하려면 서버가 클라이언트를 식별해야 할 경우가 많이 있는데
HTTP는 이러한 문제점을 해결하기 위해 브라우저 단에 쿠키라는 것을 저장하여
서버가 식별 할 수 있도록 한다.

그치만 쿠키는 사용자 정보가 브라우저에 저장되기 때문에 공격자로부터 위변조 가능성이
높아 보안에 취약하다...

이와 달리 세션이라는게 있는데 브라우저가 아닌 서버단에 사용자 정보를 저장한다.
따라서 쿠키보다는 안전하나 세션 정보도 중간에 탈취 당할 수 있고 세션을 사용하면
사용자 정보를 서버에 저장하기때문에 서버의 메모리를 차지하게 되고 만약 동시 접속자 수가
많은 서비스일 경우에는 서버 과부화의 원인이 된다.

쿠키와 세션의 문제점들을 보완하기 위해 토큰 기반의 인증 방식이 도입되었는데
토큰 기반의 인증 방식의 핵심은 보호할 데이터를 토큰으로 치환하여 원본 데이터 대신
토큰으로 사용하는 기술이다.

그래서 중간에 공격자로부터 토큰이 탈취당하더라도 데이터에 대한 정보를 알 수 없으므로
보안성을 높인 기술이라 할 수 있다.

대표적으로는 OAuth 와 JWT 가 있다.

그치만 꼭 토큰 기반의 인증 방식이 좋다고는 할 수 없다.
서비스에 따라 기술의 특징을 잘 이해하여 상황에 따라 쿠키,세션 등등을 적절히 사용하는게 좋다고 한다.

profile
백엔드 지망하는 취준생 입니다!

0개의 댓글