241113 TIL - (인증 / 인가) 정리
Cookie
- 웹 브라우저에 저장되는 데이터
- 서버가 클라이언트의 상태를 기억하도록 도와준다.
- 보안에 취약하다.
- 민감한 정보를 저장하지 않아야한다.
- 사용자 임의 수정이 가능하다.
Session
- 서버에서 중요한 정보를 보관하며 로그인을 유지하는 방법
- SessionId를 탈취하여도 민감한 정보가 없다.
- 만료 시간을 설정해서 탈취 문제를 최소화한다.
- HttpSession은 최근 Session을 요청한 시간을 기준으로 만료 시간을 유지한다.
Token
- 인증 / 인가 과정에서 사용되며 사용자 또는 시스템의 신원과 권한을 증명하고 요청의 유효성을 검증하는데 사용되는 디지털 문자열
- Session과는 다르게 클라이언트가 데이터를 저장하고 있다.
- Stateless를 기반으로 하여 확장성이 뛰어나다.
- 모바일과 같이 Cookie를 사용할 수 없는 경우에도 사용할 수 있다.
- Payload는 암호화되지 않는다.
- 만료 시간으로 Token 탈취를 대비한다.
JWT (JSON Web Tokens)
- 인증에 필요한 정보들을 암호화시킨 JSON 형태의 Token
- Signature를 통해 Token을 안전하게 관리한다.
- JWT의 목적은 정보 보호가 아닌, 위조 방지에 있다.