728x90
반응형
💡 세션과 쿠키를 이용한 인증
인증 순서
- 사용자가 로그인을 함
- 서버에서 계정 정보를 읽어 사용자 확인
- 사용자에게 고유한 ID 값 부여하여 세션 저장소에 저장
- 이와 연결되는 Session ID를 발급
- 서버에는 HTTP 응답 헤더에 발급된 Session ID를 같이 보냄
- 이후 매 요청마다 HTTP 요청 헤더에 Session ID가 담긴 쿠키를 같이 보냄
- 서버에서는 쿠키를 받아 세션 저장소에서 대조를 한 후
- 대응되는 정보를 가져옴
- 인증이 완료되고 서버는 사용자에 맞는 데이터를 보내줌
장점
- 사용자의 정보는 세션 저장소에 저장되고, 쿠키는 그 저장소를 통과할 수 있는 출입증 역할을 함
- → 쿠키가 담긴 HTTP 요청이 도중에 노출되더라도 쿠키 자체에는 유의미한 값을 갖고 잇지 않아서 쿠키에 사용자 정보를 담아 인증을 거치는 것보다 안전함
- 각각의 사용자는 고유의 Session ID를 발급 받기 때문에 일일이 회원 정보를 확인할 필요가 없어 서버 자원에 접근하기 용이함
단점
- 쿠키에 사용자 정보를 담아 인증을 거치는 것보다 안전하지만, 해커가 쿠키를 탈취한 후 그 쿠키를 이용해 HTTP 요청을 보내면 서버는 사용자로 오인해 정보를 전달하게 됨⇒ 해결책 : HTTPS 프로토콜 사용가 세션에 만료 시간을 넣어주기
- → 이를 세션 하이재킹 공격이라함
- 서버에서 세션 저장소를 사용하기 때문에 추가적인 저장공간을 필요로 함
728x90
반응형
'🍃SpringFramework > SpringSecurity' 카테고리의 다른 글
[SpringSecurity] SNS 인증 (0) | 2023.09.10 |
---|---|
[SpringSecurity] AccessToken 인증 (0) | 2023.09.10 |
[SpringSecurity] Authorization. 권한 (0) | 2023.09.10 |
[SpringSecurity] Authentication. 인증 (0) | 2023.09.10 |
[SpringSecurity] Security의 흐름 (0) | 2023.09.10 |