작성
·
140
·
수정됨
0
예전에 토큰 기반 인증 구현하면서 Access Token과 Refresh Token 문제점에 대해 고민해본 적이 있었습니다.
만약 Refresh Token을 탈취 당한다면 해커가 Access Token을 재발급 받을 수 있으므로 Access Token만을 사용했을 때와 똑같은 문제가 발생할 거라고 생각합니다. 그래서 당시에 프론트 측 개발자에게 물어봤을 때에는 Refresh Token에 Http Only 옵션이나 Secure 옵션을 해주면 된다고 이런 식으로 들었던 것 같은데, 그럼 애시당초 Access Token만을 사용하고 거기에 그런 옵션들을 해주면 번거롭게 Refresh Token을 사용할 필요도 없을 것 같다는 생각이 들었습니다.
강의를 수강하면서 Refresh Token의 효용성에 대해 의문이 다시 생기게 되었는데, 실무에서는 어떻게 Refresh Token 탈취 문제를 해결하고 있는지 궁금합니다.
답변 1
1
안녕하세요 사유님 ㅎㅎ
Refresh Token에 Http Only 옵션이나 Secure 옵션을 해주면 된다고 이런 식으로 들었던 것 같은데,
>> 두 토큰 모두 해당 옵션은 필수입니다.
탈취 문제 해결
>>
먼저 Access Token의 수명을 짧게 설정하여 탈취된 토큰의 유효 기간을 최소화합니다. 짧은 수명의 Access Token을 사용하고, 필요할 때만 Refresh Token을 통해 새로운 Access Token을 발급받습니다.
그리고 Refresh Token을 사용할 때 추가적인 사용자 인증 단계를 요구할 수 있습니다. 예를 들어, 사용자가 민감한 작업을 수행하려고 할 때 추가 인증(2단계 인증 등)을 요구할 수 있고 Refresh Token을 사용할 때 토큰을 발급받은 IP 주소 및 디바이스 정보를 확인하여, 동일한 조건에서만 토큰을 사용할 수 있도록 제한하는 방법을 씁니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.