📌 JWT
- 시그니처 : header + payload + secretKey
- Encoded값은 시크릿키로 서명된 시그니처 값이 저장되기때문에 시크릿키를 모르면 시그니처를 만들 수 없음
- hash 함수를 이용하기때문에 글자가 한글자라도 바꾸면 전혀 다른 Encoded 값이 됨
- 위에에서 name을 oni -> onida로 바꿨을때 완전히 다른 값이 나옴
- 따라서 secretKey를 모른다면 Encoded 된 결과 값을 얻을 수 없음
- 그렇지만 해커가 secretKey를 모르더라도 Encoded된 값 자체는 탈취가 가능함
- 토큰은 만료기간이 있기때문에 끝나기 전까지는 유효함
- 해커가 토큰을 이용해도 서버는 검증된 사용자인지 모름
- session을 사용할 경우에는 서버에서 사용자와 sessionId를 검증하기 때문에 다른 사용자일경우 캐치할수 있음
- 그러나 session은 매 요청마다 DB sessionTable에서 조회해야함