장점
별도의 저장소를 사용하지않아 stateless하게 서버를 관리할 수있어 확장/유지보수 하는데 유리.
단점
JWT의 길이입니다. 세션/쿠키 방식에 비해 JWT의 길이는 깁니다. 따라서 인증이 필요한 요청이 많아질 수록 서버의 자원낭비가 발생하게 됩니다.
Payload 정보가 제한적입니다. 위에서 언급했다시피 Payload는 따로 암호화되지 않기 때문에 디코딩하면 누구나 정보를 확인할 수 있습니다. (세션/쿠키 방식에서는 유저의 정보가 전부 서버의 저장소에 안전하게 보관됩니다) 따라서 유저의 중요한 정보들은 Payload에 넣을 수 없습니다.
보안취약점
JWT는 한 번 발급되면 유효기간이 완료될 때 까지는 계속 사용이 가능합니다.
따라서 악의적인 사용자는 유효기간이 지나기 전까지 신나게 정보들을 털어갈 수 있습니다.
해결책
기존의 Access Token의 유효기간을 짧게 하고 Refresh Token이라는 새로운 토큰을 발급합니다. 그렇게 되면 Access Token을 탈취당해도 상대적으로 피해를 줄일 수 있습니다.
Access Token + Refresh Token
: Access Token의 유효시간을 짧게하므로써 정보를 탈취할수있는 기간을 줄여 상대적피해를 줄임.
'보안' 카테고리의 다른 글
Session/Cookie 기반 인증 (0) | 2020.06.09 |
---|---|
SSO(Single Sign On) 통합인증 (0) | 2020.06.09 |
웹 해킹공격 방법 (0) | 2020.01.29 |
JWT (0) | 2019.10.22 |