maestroks.log
로그인
maestroks.log
로그인
Seesion 인증
권성현
·
2023년 4월 7일
팔로우
0
TIL
0
업무
목록 보기
4/22
Session 인증
세션은 비밀번호 등 클라이언트의 민감한 인증 정보를 브라우저가 아닌 서버 측에 저장하고 관리한다. 서버의 메모리에 저장하기도 하고, 서버의 로컬 파일이나 데이터베이스에 저장하기도 한다.
핵심 골자는 민감한 정보는 클라이언트에 보내지 말고 서버에서 모두 관리한다는 점이다.
Session 인증 방식
유저가 웹사이트에서 로그인하면 세션이 서버 메모리(혹은 데이터베이스) 상에 저장된다.이때, 세션을 식별하기 위한 Session Id를 기준으로 정보를 저장한다.
서버에서 브라우저에 쿠키에다가 Session Id를 저장한다.
쿠키에 정보가 담겨있기 때문에 브라우저는 해당 사이트에 대한 모든 Request에 Session Id를 쿠키에 담아 전송한다.
서버는 클라이언트가 보낸 Session Id 와 서버 메모리로 관리하고 있는 Session Id를 비교하여 인증을 수행한다.
Session의 장점
장점
어느정도 보안 유지 : 최초 접속 때를 제외하고 SessionID만 사용
큰 허용 용량 : 저장 개수나 용량 제한 없음(서버 용량 충분 시)
서버에 저장되므로 클라이언트의 웹 브라우저에 의존하지 않아도 됨
데이터를 Hash Table에 저장. 한 번에 많은 정보를 하나의 세션 객체에 저장 가능
SessionID만 보내므로, 세션의 크기가 커도 네트워크 부하가 거의 없음
Session 방식의 단점
단점
쿠키를 포함한 요청이 외부에 노출되더라도 세션 ID 자체는 유의미한 개인정보를 담고 있지 않는다. 그러나 해커가 세션 ID 자체를 탈취하여 클라이언트인척 위장할 수 있다는 한계가 존재한다. (이는 서버에서 IP특정을 통해 해결 할 수 있긴 하다)
서버에서 세션 저장소를 사용하므로 요청이 많아지면 서버에 부하가 심해진다.
서버(세션) 기반 인증 시스템
서버의 세션을 사용해 사용자 인증을 하는 방법으로 서버측(서버 램 or 데이터베이스)에서 사용자의 인증 정보를 관리하는 것을 의미한다.
그러다 보니, 클라이언트로부터 요청을 받으면 클라이언트의 상태를 계속해서 유지해 놓고 사용한다.
(Stateful)이는 사용자가 증가함에 따라 성능의 문제를 일으킬 수 있으며 확장성이 어렵다는 단점을 지닌다.
권성현
개발일지
팔로우
이전 포스트
스프링(Spring) 설정 - Log4j 설정
다음 포스트
Spring 비밀번호 암호화 방법 PW암호화 Hash함수 - SHA256
0개의 댓글
댓글 작성