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

c08h·2019년 10월 16일
2

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

  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개의 답글