장점

별도의 저장소를 사용하지않아 stateless하게 서버를 관리할 수있어 확장/유지보수 하는데 유리.

단점

JWT의 길이입니다. 세션/쿠키 방식에 비해 JWT의 길이는 깁니다. 따라서 인증이 필요한 요청이 많아질 수록 서버의 자원낭비가 발생하게 됩니다.

Payload 정보가 제한적입니다. 위에서 언급했다시피 Payload는 따로 암호화되지 않기 때문에 디코딩하면 누구나 정보를 확인할 수 있습니다. (세션/쿠키 방식에서는 유저의 정보가 전부 서버의 저장소에 안전하게 보관됩니다) 따라서 유저의 중요한 정보들은 Payload에 넣을 수 없습니다.

보안취약점

JWT는 한 번 발급되면 유효기간이 완료될 때 까지는 계속 사용이 가능합니다.

따라서 악의적인 사용자는 유효기간이 지나기 전까지 신나게 정보들을 털어갈 수 있습니다. 

해결책

기존의 Access Token의 유효기간을 짧게 하고 Refresh Token이라는 새로운 토큰을 발급합니다. 그렇게 되면 Access Token을 탈취당해도 상대적으로 피해를 줄일 수 있습니다. 

Access Token + Refresh Token

: Access Token의 유효시간을 짧게하므로써 정보를 탈취할수있는 기간을 줄여 상대적피해를 줄임.

https://tansfil.tistory.com/59?category=255594

'보안' 카테고리의 다른 글

Session/Cookie 기반 인증  (0) 2020.06.09
SSO(Single Sign On) 통합인증  (0) 2020.06.09
웹 해킹공격 방법  (0) 2020.01.29
JWT  (0) 2019.10.22

+ Recent posts