길잃은곰
길을 잃어 떠도는 곰
길잃은곰
전체 방문자
오늘
어제
  • 분류 전체보기 (87)
    • Algorithm (6)
    • HTML, CSS (9)
    • Frontend (1)
    • SW공학 (1)
    • WEB (4)
    • Javascript (29)
    • Typescript (0)
    • React (8)
    • Computer Science (11)
    • NEWS (0)
    • TIL(WIL) (4)
    • ETC (5)

블로그 메뉴

  • ✨깃허브
  • 홈
  • 태그
  • 방명록

인기 글

태그

  • js2016
  • Pixel
  • PX
  • Es5
  • REM
  • 코테
  • element
  • root-element
  • 자바스크립트
  • %
  • javascript2016
  • JavaScript
  • 코드트리
  • ES6
  • VH
  • ES8
  • VW
  • ES7
  • EM
  • 연탄
hELLO · Designed By 정상우.
길잃은곰

길을 잃어 떠도는 곰

Computer Science

[ Frontend ] JWT 토큰을 저장하는 방법

2023. 1. 13. 05:07

JWT ( Json Web Token )

Json Web Token 이란 사용자의 인증이 담긴 정보를 암호화한 토큰을 의미한다.

JWT 정보를 Authorization 에 담아 전송하며, 이것을 서버에서 검증하여 사용자의 정보 열람, 권한 부여 등의 인증/ 인가 작업을 수행할 수 있다. JWT 탈취하는 주요 공격으로는 XSS, CSRF 공격이 있다.

XSS ( Cross Site Scripting ) 

CSS 라고 불리지 않는 이유는 cascading style sheets ( css ) 가 이미 널리 쓰고 있기 때문이다.

XSS 공격은 공격자가 상대방의 브라우저에 스크립트가 실행되도록 하여, 사용자의 세션 혹은 웹사이트를 변조하여 악의적인 콘텐츠/ 피싱 공격을 의미한다.

CSRF ( Cross Site Request Forgery )

정상적인 Request 를 가로채 백엔드 서버에 변조된 Request 를 보내 악의적인 동작을 수행하는 공격을 의미함.

이미지 태그를 가장하여 은행 계좌에서 돈을 출금하는 공격 코드의 예시이다.

<img scr="https:///bank.example.com/withdraw?account=you&amount=1000000&for=me">

이런 식으로 바꾸면, 이미지 태그가 실행되면 은행으로부터 돈을 인출하는 코드를 실행하는 예시이다.

유저가 사이트에 들어와서 이미지 HTML 코드가 불러와지면, 출금이 되는 코드를 실행하게 되는 것이다.

 

JWT 어디에 저장하는데?

🍪 쿠키

아무 옵션 없이 실행하는 쿠키는 XSS, CSRF 공격 모두 취약하다.

하지만 httpOnly ( XSS ) / SameSite ( CSRF ) / Secure ( HTTPS 프로토콜을 통한 Secure 요청으로만 전송됨) 옵션을 사용한다면, 더욱 안전하게 사용할 수 있다.

💾Web Storage

로컬 스토리지

자동으로 request 에 담기는 쿠키와는 다르게 js 코드에 의해서만 헤더에 담기기 때문에, 공격자가 request 를 보내기 어렵다. 하지만 자바스크립트로 접근이 가능하기에 XSS 공격에 취약하다.

저작자표시 비영리 동일조건 (새창열림)

'Computer Science' 카테고리의 다른 글

[ Network ] 토큰 기반 인증 방식에 대하여  (0) 2023.01.13
[NETWORK] 웹프로토콜 이란  (0) 2023.01.10
[NETWORK] Base64 인코딩이란?  (0) 2023.01.10
[NETWORK] TCP 와 UDP 설명과 비교  (0) 2023.01.10
[NETWORK] HTTP 의 State Code 설명  (0) 2023.01.10
    'Computer Science' 카테고리의 다른 글
    • [ Network ] 토큰 기반 인증 방식에 대하여
    • [NETWORK] 웹프로토콜 이란
    • [NETWORK] Base64 인코딩이란?
    • [NETWORK] TCP 와 UDP 설명과 비교
    길잃은곰
    길잃은곰

    티스토리툴바