You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Refresh Token은 HttpOnly 쿠키로 저장하고,
accessToken 은 메모리(리덕스)에 저장 하는게 좋지 않을까? 입니다.
그 근거로는
로컬 vs 쿠키 << 가장 많이 쓰는
로컬스토리지 경우
CSRF 공격에는 안전하지만 XSS에 취약하다.
쿠키의 경우
XSS 공격으로부터 localStorage에 비해 비교적 안전하다.
XSS(Cross Site Scripting)
공격자가 의도하는 악의적인 js 코드를 피해자 웹 브라우저에서 실행시키는 것
CSRF(Cross Site Request Forgery)
정상적인 request를 가로채 피해자인 척 하고 백엔드 서버에변조된 request를 보내 악의적인 동작을수행하는 공격 (피해자 정보 수정, 정보 열람)
휘발성이 있는
메모리에 저장하거나 세션스토리지에 저장하는 방법도 있을 것입니다.
CSRF 공격은 다루기 쉬운 반면 프론트엔드 크기가 크면 클수록XSS 공격을 막기위한 작업은 많아지므로 쿠키 사용을 추천한다고도 합니다.
쿠키는 별도로 헤더에 담지 않아도 요청을 보낼때 자동으로 담아서 보내지기 때문에매번 서버로의 요청에 담아야하는 토큰이라는 성격과 잘 맞는 느낌입니다.
mdn 에서는 저장소로 쿠키를 추천하지 않는다. 대신 ModernStorage(localStorage와 sessionStorage)를 추천합니다
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
일단 제가 고민 끝에 내린 결론은
Refresh Token은 HttpOnly 쿠키로 저장하고,
accessToken 은 메모리(리덕스)에 저장 하는게 좋지 않을까? 입니다.
그 근거로는
로컬스토리지 경우
쿠키의 경우
XSS(Cross Site Scripting)
CSRF(Cross Site Request Forgery)
휘발성이 있는
메모리에 저장하거나 세션스토리지에 저장하는 방법도 있을 것입니다.
CSRF 공격은 다루기 쉬운 반면 프론트엔드 크기가 크면 클수록XSS 공격을 막기위한 작업은 많아지므로 쿠키 사용을 추천한다고도 합니다.
쿠키는 별도로 헤더에 담지 않아도 요청을 보낼때 자동으로 담아서 보내지기 때문에매번 서버로의 요청에 담아야하는 토큰이라는 성격과 잘 맞는 느낌입니다.
mdn 에서는 저장소로 쿠키를 추천하지 않는다. 대신 ModernStorage(localStorage와 sessionStorage)를 추천합니다
하지만 추가적인 고려 사항으로
다른 방향성이나 좋은 설계가 있다면 공유 부탁드려요!
38 votes ·
Beta Was this translation helpful? Give feedback.
All reactions