Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

JWT 토큰을 어디에 보관 해야 할까?#223

ravenkim started this conversation inA vs B
Discussion options

일단 제가 고민 끝에 내린 결론은

 Refresh Token은 HttpOnly 쿠키로 저장하고,
 accessToken 은 메모리(리덕스)에 저장 하는게 좋지 않을까? 입니다.
 
 
 그 근거로는
 

  1. 로컬 vs 쿠키 << 가장 많이 쓰는

로컬스토리지 경우

  • CSRF 공격에는 안전하지만 XSS에 취약하다.

쿠키의 경우

  • XSS 공격으로부터 localStorage에 비해 비교적 안전하다.

 
XSS(Cross Site Scripting)

공격자가 의도하는 악의적인 js 코드를 피해자 웹 브라우저에서 실행시키는 것

CSRF(Cross Site Request Forgery)

정상적인 request를 가로채 피해자인 척 하고 백엔드 서버에변조된 request를 보내 악의적인 동작을수행하는 공격 (피해자 정보 수정, 정보 열람)

 휘발성이 있는
메모리에 저장하거나 세션스토리지에 저장하는 방법도 있을 것입니다.

CSRF 공격은 다루기 쉬운 반면 프론트엔드 크기가 크면 클수록XSS 공격을 막기위한 작업은 많아지므로 쿠키 사용을 추천한다고도 합니다.
쿠키는 별도로 헤더에 담지 않아도 요청을 보낼때 자동으로 담아서 보내지기 때문에매번 서버로의 요청에 담아야하는 토큰이라는 성격과 잘 맞는 느낌입니다.

mdn 에서는 저장소로 쿠키를 추천하지 않는다. 대신 ModernStorage(localStorage와 sessionStorage)를 추천합니다

하지만 추가적인 고려 사항으로

  • 쿠키에 저장 시 모바일 환경에서 문제가 생길 수 도 있는 문제가 있습니다.
  • 백엔드와 협업에 들어가는 리소스까지 생각하면 로컬스토리지가 이득입니다. 

image

다른 방향성이나 좋은 설계가 있다면 공유 부탁드려요!

jwt 토큰을 저장하는곳
로컬 스토리지
27%
쿠키
72%

44 votes

You must be logged in to vote

Replies: 0 comments

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Category
A vs B
Labels
None yet
1 participant
@ravenkim

[8]ページ先頭

©2009-2025 Movatter.jp