본문 바로가기
Web Development/웹

인증과 권한, 쿠키와 세션

by doriver 2022. 12. 7.

인증(Authentication)

누구인지 확인하는 절차(로그인)
사용자 - 인증안된 사용자a
            - 인증된 사용자     - 특정 역할 (ex 관리자b, 유저c 등등)

권한(Authorization)

어떤 동작을 할 수 있는지 
웹사이트 내에서 a,b,c가 볼수있거나 할수있는것들이 다르다

 

쿠키(Cookie)와 세션(Session)

웹 통신간 사용자 정보를 저장하는 방법. 어떤 사용자의 요청인지 식별하기 위해 사용한다.

사용자마다 웹페이지 정보를 다르게 보여주기 위함이다.(예: 장바구니, 개인정보 등)

 

쿠키(Cookie)

사용자를 식별할수있는 정보를 사용자의 브라우저에 저장한다.
인터넷 사용정보 삭제(쿠키 삭제)를 하면 브라우저에서 식별 정보가 사라진다.
쿠키는 보안에 취약하므로 비밀번호와 같은 인증 정보는 저장하지 않도록 한다.

세션(Session)

서버 측에 데이터를 저장하고, 세션의 키값만을 클라이언트 측에 저장.

브라우저는 필요할 때마다 이 키값을 이용하여 서버에 저장된 데이터를 사용.

 

세션은 쿠키를 사용하는데, 브라우저 마다 쿠키에 JSEESIONID라는 세션아이디를 저장하고 이것으로 사용자를 식별한다.
첫 요청시에는 Session Id가 없다.
서버는 JSESSIONID가 없는 것을 확인하면 새로 발급하여 Response에 담아 내려준다.
이후부터는 Request 시 session id를 헤더에 담아 요청한다.

 

웹페이지의 로그인 기능은 세션을 사용한다. 로그인 정보를 서버에서 관리하므로 보안상 안전하다.

 

쿠키(Cookie)와 세션(Session)

브라우저 단위로 요청을 식별한다.
Request의 Header에 정보가 들어있다.

브라우저(사용자A) <- (session ID) -> 서버
브라우저(사용자B) <- (session ID) -> 서버
...

세션을 없애려면 : 브라우저 닫기 or 로그아웃(서버에서 세션을 삭제)