Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
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
Archives
Today
Total
관리 메뉴

heyday2024 님의 블로그

내가 만든 쿠키~~~~너를 위해 구웠지 본문

프론트엔드 부트캠프

내가 만든 쿠키~~~~너를 위해 구웠지

heyday2024 2024. 11. 25. 20:57

웹 사이트의 쿠키란??

쿠키는 웹 서버가 생성하여 사용자의 웹 브라우저에 저장하는 작은 데이터 파일임. 쿠키는 사용자가 웹 사이트를 방문했을 때 특정 정보를 유지하거나, 사용자의 행동을 추적하거나, 맞춤형 서비스를 제공하기 위해 사용됨

쿠키는 웹 브라우저에서 미리 정해진 기간 동안 혹은 웹 사이트에서의 사용자 세션 기간 동안 저장되고, 나중에 사용자가 웹 서버에 요청할 때 관련 쿠키가 첨부됨

  • (참고) 근데 왜 쿠키라는 용어를 썼을까??데이터 패킷은 컴퓨터 네트워크에서 정보를 전송하기 위한 형식화된 데이터 블록으로 매직쿠키는 변경되지 않은 상태로 송수신되는 데이터 패킷입니다.
  • 웹사이트에서의 쿠키(cookie)는 원래 과자와는 다른 맥락에서 유래되었습니다. 이 이름은 매직 쿠키(magic cookie)라는 데이터 패킷에서 유래되었습니다.

쿠키는 어디에 저장되나요?

쿠키는 웹 브라우저에 의해 사용자 기기의 지정된 파일에 저장됨

<각 브라우저의 쿠키 저장되는 위치>

  • Google Chrome:
    • 쿠키는 "Cookies"라는 SQLite 데이터베이스 파일에 저장됨
  • Mozilla Firefox:
    • 쿠키는 "cookies.sqlite"라는 SQLite 데이터베이스 파일에 저장됨
  • Safari (macOS):
    • 쿠키는 ~/Library/Cookies 디렉토리에 저장됨.
  • Microsoft Edge:
    • 쿠키는 Cookies라는 파일로 저장되며 위치는 Chrome과 유사함

쿠키의 사용 용도

1. 사용자 세션 관리

사용자 세션 쿠키는 특정 사용자의 활동을 웹 사이트와 연결하는 데 사용됨. 사용자가 로그인하면 서버는 세션 정보를 포함하는 쿠키를 생성하여 브라우저에 저장함. 이후 사용자는 동일한 세션 쿠키를 통해 인증된 상태를 유지하며 페이지를 이동할 수 있음.

예시: 로그인 상태 유지

  • 사용자가 웹 사이트에 로그인하면, 서버는 사용자를 식별하기 위해 세션 쿠키를 생성하고 브라우저에 전송함.
  • 브라우저는 이 쿠키를 요청마다 포함시켜 서버에 전송하므로, 사용자는 각 페이지를 이동할 때마다 다시 로그인할 필요가 없음
  1. 개인화예시: 사용자 설정 저장
    • 쿠키는 사용자의 언어, 테마, 마지막 로그인 정보 등을 저장하여 웹 사이트를 개인화함
  2. 쿠키는 사용자의 행동이나 기본 설정을 저장하여 맞춤형 경험을 제공함. 이를 통해 사용자가 재방문 시 이전 설정이 그대로 유지되며, 사용자 경험이 향상됨
  3. 추적예시: 광고 타겟팅
    • 쿠키는 사용자가 방문한 페이지 정보를 저장하여, 광고를 개인화하거나 사용자의 관심사에 맞춘 콘텐츠를 제공함
  4. 추적 쿠키는 사용자의 방문 기록을 저장하여 행동 데이터를 분석하거나 타겟 광고를 표시하는 데 사용됨

<쿠키의 주요 유형>

1. 세션 쿠키 (Session Cookie)

  • 특징:
    • 웹 사이트에서 사용자의 세션을 추적하는 데 사용.
    • 브라우저를 닫거나 사용자가 로그아웃하면 삭제됨.
    • 만료일이 없으며, 세션이 종료되면 자동 삭제됨.
  • 용도:
    • 로그인 상태 유지.
    • 장바구니와 같은 임시 데이터 저장.
  • 예시:
    • Alice가 쇼핑 웹사이트에서 로그인한 상태로 청바지 상품 페이지를 탐색할 때, 세션 쿠키가 Alice의 로그인 상태를 유지함.

2. 영구 쿠키 (Persistent Cookie)

  • 특징:
    • 미리 정의된 만료일 동안 브라우저에 저장됨.
    • 몇 시간, 몇 주, 몇 달, 또는 몇 년 동안 유지 가능.
    • 브라우저를 닫아도 데이터가 유지됨.
  • 용도:
    • 사용자 기본 설정 저장 (예: 언어, 테마).
    • "자동 로그인" 기능 제공.
  • 예시:
    • Alice가 웹사이트에서 영어(en-US)를 선택하면, 영구 쿠키가 저장되어 다음 방문 시 동일한 언어로 로드됨.

3. 인증 쿠키 (Authentication Cookie)

  • 특징:
    • 사용자 세션을 관리하고, 계정 로그인 상태를 유지.
    • 로그인 세션과 사용자를 인증하는 데 사용.
  • 용도:
    • 사용자 인증 및 권한 확인.
    • 브라우저를 통한 계정 로그인.
  • 예시:
    • Alice가 쇼핑몰에 로그인하면, 인증 쿠키가 생성되어 Alice의 계정 정보를 유지하고, 다른 페이지로 이동하더라도 로그인 상태를 유지함.

4. 추적 쿠키 (Tracking Cookie)

  • 특징:
    • 사용자의 웹 활동을 기록하고 추적.
    • 광고 네트워크에서 사용하며, 타겟 광고 제공에 도움.
  • 용도:
    • 광고 개인화 및 사용자의 관심사 기반 추천.
    • 사용자 활동 분석.
  • 예시:
    • Alice가 청바지 상품 페이지를 방문한 후, 다른 웹사이트에서 청바지 광고가 표시됨.

5. 좀비 쿠키 (Zombie Cookie)

  • 특징:
    • 삭제된 후에도 다시 생성됨.
    • 브라우저의 일반적인 쿠키 저장 위치 외부에 백업 데이터를 생성.
    • 부도덕한 광고 네트워크나 사이버 공격자가 악용하기도 함.
  • 용도:
    • 부적절한 광고 또는 추적.
  • 예시:
    • Alice가 특정 웹사이트에서 쿠키를 삭제했음에도 불구하고, 쿠키가 다시 나타나서 Alice의 활동을 추적.
  • 좀비 쿠키는 삭제한 후에도 어떻게 다시 생성되는 걸까…?
    • 브라우저의 대체 저장소 활용:
      • 일반적인 쿠키 저장소가 아닌 HTML5 로컬 스토리지, Flash 스토리지(Flash Local Shared Objects), 또는 IndexedDB 등을 사용해 데이터를 저장.
      • 사용자가 브라우저의 쿠키를 삭제해도, 대체 저장소에 있는 데이터로 쿠키를 복원.
    • 자바스크립트와 브라우저 API 활용:
      • 브라우저 API를 이용해 쿠키를 지속적으로 생성.
      • 예: 사용자가 삭제한 쿠키를 자바스크립트를 통해 감지하고, 백업된 데이터를 바탕으로 새 쿠키를 만듦.
    • 플러그인 의존성:
      • Adobe Flash 또는 Silverlight와 같은 브라우저 플러그인을 통해 데이터를 저장하고 쿠키를 재생성.
    • ETag 및 캐시 활용:
      • HTTP ETag(캐시 검증을 위한 태그) 또는 브라우저 캐시를 이용해 쿠키 데이터를 저장하고, 이 데이터를 기반으로 쿠키를 다시 생성.
  • 여러 방식들이 있겠지만 대표적으로 좀비 쿠키가 생성되는 방식들 정리:
  • 좀비 쿠키로 발생할 수 있는 사이버 공격 구체적으로 정리
  • 좀비 쿠키는 사용자를 추적하고 감시하는 것 뿐만 아니라 session hijacking(좀비 쿠키가 세션 정보를 복원해서 세션을 탈취), cross-site tracking(악의적인 도메인이 좀비쿠키 사용해서 사용자의 활동 추적해서 데이터 탈취 후 그 데이터 악용), 악성 코드 전파 등 여러 악의적인 목적으로 사용될 수 있음
  • 그러면 좀비 쿠키 어떻게 방어해야될까요??
    • 브라우저 설정 및 플러그인 관리:
      • 브라우저의 "서드파티 쿠키 차단" 옵션 활성화.
      • Flash 또는 Silverlight 플러그인 사용을 제한.
    • 쿠키 및 스토리지 완전 삭제:
      • 브라우저 쿠키와 함께 HTML5 로컬 스토리지, Flash 스토리지 등 대체 저장소 데이터 삭제.
    • 보안 브라우저 사용:
      • 쿠키와 추적 방지 기능이 강화된 브라우저(예: Brave, Firefox Focus) 사용.
    • 추적 방지 확장 프로그램 설치:
      • AdBlock Plus, Privacy Badger, Ghostery 등 추적 방지 도구 설치.
    • HTTPS 사용 및 SameSite 쿠키 설정:
      • Secure 및 SameSite 속성을 사용해 쿠키를 안전하게 관리.

<타사 쿠키 (Third-party Cookie)란?>

  • 특징:
    • 사용자가 방문한 도메인(1차 당사자)과 다른 도메인에서 생성된 쿠키.
    • 광고 네트워크 및 추적 목적으로 사용.
  • 용도:
    • 여러 웹사이트에서 사용자를 추적.
    • 광고 네트워크를 통한 데이터 공유.
  • 예시:
    • Alice가 jeans.example.com에서 쇼핑을 하며 세션 쿠키를 사용해 로그인 상태를 유지하지만, 동시에 example.ad-network.com에서 타사 쿠키가 저장되어 Alice의 활동을 추적.

쿠키와 사용자 개인정보 보호

  1. 개인정보 보호에 미치는 영향:
    • 쿠키는 광고 및 브라우징 활동 기록에 사용되어 사용자 행동이 추적될 수 있음.
    • 사용자는 자신의 온라인 행동이 어떻게 추적되는지에 대한 통제권과 투명성 부족.
    • 일부 쿠키는 익명성을 유지하지만, 특정 조건에서는 사용자의 검색 활동을 실제 신원과 연결 가능.
  2. 악용 가능성:
    • 원치 않는 광고 노출.
    • 사용자 모니터링, 스토킹, 괴롭힘 등의 위험.
  3. 법적 규제:
    • EU ePrivacy Directive:
      • 사용자는 쿠키 사용에 대해 고지받고 동의해야 함.
      • 단, "반드시 필요한 쿠키"는 예외.
    • GDPR:
      • 쿠키 식별자를 개인 데이터로 간주.
      • 쿠키로 수집된 개인 데이터는 GDPR 규정의 적용을 받음.
  4. 쿠키 배너:
    • 많은 웹사이트는 쿠키 배너를 통해 사용자가 쿠키 사용 여부를 검토하고 제어할 수 있도록 함.

 

새롭게 알게 된 것 & 어려웠던 부분

  • 맞춤형 광고가 생성되는 이유가 타사 쿠키에 의한 것이었음을 이번 조사 과정에서 더욱 자세히 알게 되었다.
  • 좀비 쿠키를 들어보긴 했지만, 좀비 쿠키를 악의적으로 사용해서 정말 다양한 종류의 사이버 공격이 일어날 수 있음을 새롭게 알게 되었다.

'프론트엔드 부트캠프' 카테고리의 다른 글

트러블 슈팅 정리 (MBTI)  (0) 2024.11.28
[React 심화] 인증, 인가 - 쿠키, 세션, 토큰, JWT  (0) 2024.11.27
팀과제 + DB에 대해서  (1) 2024.11.18
클린 코드 (Clean Code)  (1) 2024.11.15
CORS에 대해서  (2) 2024.11.14