[Spring Security] 세션과 쿠키를 이용한 인증
·
Web & Android/Spring Security
💡 세션과 쿠키를 이용한 인증 인증 순서 사용자가 로그인을 함 서버에서 계정 정보를 읽어 사용자 확인 사용자에게 고유한 ID 값 부여하여 세션 저장소에 저장 이와 연결되는 Session ID를 발급 서버에는 HTTP 응답 헤더에 발급된 Session ID를 같이 보냄 이후 매 요청마다 HTTP 요청 헤더에 Session ID가 담긴 쿠키를 같이 보냄 서버에서는 쿠키를 받아 세션 저장소에서 대조를 한 후 대응되는 정보를 가져옴 인증이 완료되고 서버는 사용자에 맞는 데이터를 보내줌 장점 사용자의 정보는 세션 저장소에 저장되고, 쿠키는 그 저장소를 통과할 수 있는 출입증 역할을 함 → 쿠키가 담긴 HTTP 요청이 도중에 노출되더라도 쿠키 자체에는 유의미한 값을 갖고 잇지 않아서 쿠키에 사용자 정보를 담아 인증..
[네트워크] 세션 기반 인증 & 토큰 기반 인증
·
CS 지식/[네트워크]
세션 기반 인증 클라이언트로부터 요청을 받으면 클라이언트의 상태 정보를 저장하므로 Stateful(상태 유지)한 구조를 가짐 서버에 세션을 저장해야하므로 서버에 부담이 상대적으로 더 가며 확장성이 낮음 또한, 해커가 훔친 쿠키를 이용해 요청을 보내면 서버는 올바른 사용자가 보낸 요청인지 알 수 없음(세션 하이재킹 공격) 단일 도메인인 경우 사용 → 세션을 관리할 때 사용되는 쿠키는 단일 도메인 및 서브 도메인에서만 작동하도록 설계되어 있기 때문에 여러 도메인에서 관리하는 것은 어렵습니다. (CORS 문제) 토큰 기반 인증 상태 정보를 서버에 저장하므로 Stateless(무상태)한 구조를 가짐 단일 도메인이 아닌 경우 사용
[네트워크] 쿠키 & 세션
·
CS 지식/[네트워크]
가장 큰 차이는 사용자의 정보가 저장되는 위치 쿠키는 클라이언트, 세션은 서버의 자원을 사용 세션은 보안이 뛰어나다는 점과 쿠키는 요청 속도가 빠르다는 특징 쿠키 웹 서버와 클라이언트가 통신할 때, 클라이언트 쪽에서 가지고 있는 정보 HTTP에서 클라이언트의 상태 정보를 PC에 저장했다가 필요 시 정보를 참조하거나 재사용할 수 있음 세션 서버 쪽에서 가지고 있는 정보 일정 시간 동안 같은 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 유지시키는 기술 쿠키(Cookie) 세션(Session) 저장 위치 클라이언트(=접속자 PC) 웹 서버 저장 형식 text Object 만료 시점 쿠키 저장 시 설정(브라우저가 종료되도, 만료시점이 지나지 않으면 삭제되지 않음) 브라우저 종료 시 삭제(..