Posts [JWT] JWT 저장소 위치
Post
Cancel

[JWT] JWT 저장소 위치

  • 액세스 토큰은 프로그램상 자바스크립트 로컬 변수에 저장하고, http 헤더에 bearer 토큰으로 담아서 매 요청마다 보내도록 하자.
    • 액세스 토큰을 쿠키에 담으면 CSRF 공격에 취약해진다.
    • 즉, 해커가 내 인증정보를 활용해서 서버에 나인것처럼 속여서 요청을 보낼 수 있게 된다.
  • 로컬스토리지는 사용하지 말자. (보안에 매우 취약)
    • 브라우저의 로컬스토리지는 정말 편리하지만 XSS를 방어할 수 있는 방법이 없다.
    • 단, 이 쿠키가 Http Only이며 Secure(https) 옵션이 켜져있을때 그렇다. 이 말은 쿠키를 자바스크립트로 읽어올 수 없다는 말이고 네트워크 감청을 통한 쿠키값 읽기를 방어한다는 말이다. 즉, XSS 공격을 통한 토큰 탈취를 방지할 수 있다.
  • 그럼으로 리프레시 토큰은 HTTP ONLY, SECURE 쿠키에 저장하자.
    • CSRF 공격에 의해 요청이 위조되어도 문제없다!

쿠키 옵션

  • httpOnly → 스크립트 상에서 접근이 불가능하도록 한다.
  • secure → 패킷 감청을 막기 위해 https 통신 시에만 해당 쿠키를 사용하도록 한다.
  • SameSite → Strict, Lax 모드가 있으며 Strict 모드에서는 같은 도메인 범위에서만 해당 쿠키를 사용하게 하며, Lax는 사용자가 페이지 이동 시 혹은 Form을 통한 Get 요청 시에만 허용된다.

출처

This post is licensed under CC BY 4.0 by the author.

[도메인주도개발시작하기] Chapter8-애그리거트 트랜잭션 관리

[AWS] Lambda 개요