서버로부터 받은 토큰 저장 위치

c08h·2019년 10월 16일

서버로부터 받은 토큰 어디에 저장할까?

  1. 브라우저의 localStorage or sessionStorage에 담아서 사용한다.
  2. 브라우저의 쿠키에 담아서 사용한다.

1. localStorage or SessionStorage에 담아서 사용할 경우

  • 사용하기가 매우 편리하고 구현하기도 쉽다.
  • 단, 누군가 페이지(ex. 게시글)에 악성 스크립트를 삽입한다면 쉽게 토큰을 탈취 당할 수 있다. (XSS 공격)

2. 쿠키에 담아서 사용한다

  • 쿠키 역시 XXS 공격에 노출되어 있지만 httpOnly라는 속성을 활성화하면 자바스크립트를 통해 쿠키를 조회할 수 없으므로 악성 스크립트로부터 안전하다.
  • 그 대신 CSRF(Cross Site Request Forgery)라는 공격을 받을 수 있다.

결론

CSRF 공격은 백엔드에서 request의 referrer를 확인하여 domain이 일치하는지를 검증하거나,
Security Token(ex. CSRF Token)을 사용한다면 제대로 된 방어가 가능하기 때문에 사용자 토큰을 쿠키에 담아서 사용하려고 한다.

profile
나는 좋아한다 프론트엔드 개발을

3개의 댓글

comment-user-thumbnail
2019년 10월 17일

결론도 알수 있을까요

1개의 답글