피드로 돌아가기
Access token vs refresh token
Dev.toDev.to
Security

Short-lived Access Token과 Refresh Token 조합을 통한 보안성과 UX의 최적 밸런스 설계

Access token vs refresh token

kundan2026년 6월 9일2beginner

Context

단일 토큰 체계에서 발생하는 보안 취약점과 사용자 경험 저하 사이의 상충 관계 분석. Long-lived 토큰 사용 시 탈취에 따른 장기적 권한 남용 위험과 Short-lived 토큰 사용 시 빈번한 재로그인 요구로 인한 UX 저하가 주요 병목 지점으로 작용.

Technical Solution

  • 15분 단위의 Short-lived Access Token 운용을 통한 토큰 탈취 시 피해 범위 최소화
  • Server-side 보안 저장소 기반의 Long-lived Refresh Token 도입을 통한 세션 유지 자동화
  • HttpOnly Cookie 적용을 통한 Client-side 스크립트 기반의 XSS 공격 차단 및 토큰 보호
  • Refresh Token Hash의 DB 저장 및 검증 절차를 통한 토큰 유효성 및 무결성 확인
  • 401 Unauthorized 응답 발생 시 Refresh Token을 활용한 Access Token 자동 갱신 flow 구축

- Access Token의 만료 시간을 15분 내외로 짧게 설정했는지 확인 - Refresh Token을 Client-side가 아닌 Server-side 또는 HttpOnly Cookie에 안전하게 저장했는지 검토 - DB에 Refresh Token 저장 시 평문이 아닌 Hash 형태로 저장하여 데이터 유출 대비 - Access Token 갱신 시 Refresh Token 역시 함께 갱신하는 Refresh Token Rotation 적용 고려

원문 읽기