728x90
JWT 토큰 저장소
상황
JWT 토큰을 사용하는건 좋은데 토큰을 어떻게 관리 하는게 좋을지 대한 고민
옵션들
옵션 1: localStorage
- 장점: 간단, 알아서 토큰인증 수행 추가로직 x, 페이지 새로고침해도 유지
- 단점: XSS 공격 취약, 프론트에서 요청시 헤더에 토큰 추가해줘야됨
- 찾아본 결과 안좋은 반응이 많음
옵션 2: Cookie (httpOnly)
- 장점: XSS 안전, 자동전송
- 단점: CSRF 공격 고려 필요
- 설정 복잡
최종 선택 : localStorage + Cookie (httpOnly)
이유: 개발 편의성과 보안성을 고려했을때 액세스토큰은 헤더, 리프레쉬토큰은 쿠키로 결정 (단 액세스토큰은 유효기간 짧게)
우려사항:
- 설정이 어려울 것 같음
- 짧은시간이지만 xss공격으로 액세스토큰 탈취시 피해가 생길수 있음
결과
최종적으로 액세스토큰은 헤더에넣고 localStorage 관리, 리프레시토큰은 Cookie(httpOnly) 관리
단 액세스토큰의 유효기간을 짧게 설정해서 XSS공격으로 탈취 당했을 시 피해를 최소화 한다.
728x90
'Project' 카테고리의 다른 글
| [Django] dj_rest_auth 와 allauth로 유저 api 구현하기 (0) | 2025.11.09 |
|---|---|
| [Django] json-log-formatter 한글 깨짐 인코딩문제 (0) | 2025.10.13 |
| Django 개발 환경 초기 세팅 (0) | 2025.09.22 |
| 앱에서 Flutter와 Django 서버 연결하기, http 통신 (0) | 2025.04.28 |