티스토리 뷰

반응형

참고 사이트


JWT란?

개념

  • Json Web Token의 약자. Json 형태로 되어 있는 토큰.
  • 기존의 세션/쿠키 방식의 한계를 보완하기 위해 최근 많이 사용하는 인증 방식
  • 토큰 인증 프로세스
    1. 사용자는 로그인 같은 과정을 통해 서버에 인증을 요청
    2. 서버에서는 인증이 완료되면 토큰을 생성하여 사용자에게 전달
    3. 사용자는 해당 토큰을 받아 인증이 필요할 때마다 토큰을 함께 전달
    4. 서버는 매번 들어오는 요청마다 토큰을 검증하여 이에 따라 요청한 자원을 제공
  • 클라이언트는 최초 인증 후 서버에게 전달받은 토큰을 저장(일반적으로 local storage 혹은 쿠키에 저장)
  • 저장된 토큰을 Authorization header에 실어서 Request 요청

JWT 토큰 저장소

HTML5 Web Storage

  • Web Storage는 HTML5부터 지원되는 기술
  • 클라이언트(브라우저)에 데이터를 저장할 수 있는 방법 중 하나
  • 쿠키에 비해 보안이 좀 더 뛰어나면서 웹사이트 성능에 영향 없이 더 많은 데이터(최소 5MB)를 저장할 수 있음
  • 각 도메인과 프로토콜 단위로 저장됨
  • Local Storage : window.localStorage에 위치. 모두 문자열로 저장됨. 데이터를 지우기 전까지는 계속 저장됨.
  • Session Storage : window.sessionStorage에 위치. Local Storage와 달리 데이터가 영구적으로 보관되지 않고 브라우저 창이 꺼지면 데이터가 삭제됨
  • 자바스크립트로 값을 쉽게 저장하고 가져올 수 있기 때문에 편리
  • 보안 측면에서는 좋지 않음
  • XSS(Cross-Site Scripting) 공격에 취약할 수 있음
  • XSS : 사이트 간 스크립팅. 웹사이트 관리자가 아닌 이가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점

Cookies

  • 사용자 인증을 하게 되면 서버측에서 HTTP Set-Cookie 헤더를 통해 토큰을 전송
  • 브라우저는 이를 통해 쿠키를 생성하고 토큰을 저장함
  • 해당 API에 요청을 할 때에 브라우저는 자동으로 이 쿠키를 실어서 보냄
  • 쿠키 또한 자바스크립트를 통해 조작이 가능하지만 옵션 설정을 하면 이를 막을 수 있음
  • HttpOnly 옵션 : 쿠키는 자바스크립트로 접근이 불가능함(오로지 HTTP 통신을 통해서만 쿠키가 전송됨) -> XSS 공격에 대해 방어 가능
  • Secure 옵션 : 쿠키는 HTTPS 통신으로만 전송 -> 보안 수준을 한 단계 더 높일 수 있음
  • CSRF(Cross-Site Request Forgery) 공격에 취약
  • CSRF : 사이트 간 요청 위조.  사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격


반응형

'개발도구 > Web' 카테고리의 다른 글

[Web] Web 서버와 WAS의 차이  (0) 2019.03.18
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함