Cookie
쿠키(Cookie)는 웹 브라우저와 웹 서버 간에 정보를 주고받을 때 사용되는 작은 텍스트입니다. 쿠키는 사용자의 웹 브라우저에 저장되며, 웹 사이트에서 정보를 추적하고 상태를 유지하는 데 유용합니다.
쿠키 저장 방법
웹 서버는 HTTP 응답 헤더의 Set-Cookie 헤더를 사용하여 쿠키를 생성하고 클라이언트(브라우저)에 전송합니다. 쿠키는 클라이언트에서만 저장됩니다.
Set-Cookie: username=johndoe; expires=Wed, 21 Oct 2022 07:28:00 GMT; path=/; domain=.example.com; secure; httponlySet-Cookie 헤더에는 쿠키 이름(username), 값(johndoe), 만료 일자(expires), 경로(path), 도메인(domain), 보안(secure), HTTP 전용(httponly) 등의 정보를 플래그와 함께 포함할 수 있습니다. (쿠키의 보안에서 각 플래그에 대해 설명합니다.)
쿠키 사용 예시
쿠키는 웹 개발 및 온라인 경험을 개선하기 위해 다양한 용도로 활용됩니다:
- 세션 관리: 사용자가 로그인한 상태를 유지하고 웹 애플리케이션의 세션을 관리하기 위해 사용됩니다.
- 개인화: 사용자 경험을 개선하기 위해 사용자 선호도, 테마, 언어 등의 정보를 추적하고 제공합니다.
- 쇼핑 카트: 온라인 쇼핑 사이트에서 장바구니 정보를 저장하고 관리합니다.
- 추적 및 분석: 웹 사이트의 방문자 동작 및 트래픽을 추적하고 분석하여 사용자 행동을 이해하고 개선합니다.
- 광고 타겟팅: 사용자 관심사에 기반하여 광고를 표시하고 타겟팅합니다.
쿠키의 보안
쿠키는 민감한 정보를 저장할 수 있으므로 보안에 주의해야 합니다:
- expires 플래그: expires 플래그를 사용하여 쿠키의 만료 일자를 설정합니다. 만료 일자가 지나면 쿠키가 삭제됩니다.
- 만약 expires 옵션이 설정되지 않으면 쿠키는 세션 쿠키로 간주되어 브라우저 세션이 종료될 때까지 유지됩니다.
- expires 옵션은 GMT(그리니치 표준시) 형식으로 날짜를 표시합니다.
- path 플래그: 옵션은 쿠키가 어떤 경로에서 유효한지를 지정하는 데 사용됩니다. 이 경로는 URL 경로와 비교됩니다.
- 쿠키의 path 옵션이 설정되면 해당 경로 또는 하위 경로에서만 쿠키를 사용할 수 있습니다. 다른 경로에서는 쿠키에 접근할 수 없습니다.
- 기본적으로 path 옵션이 설정되지 않으면 쿠키는 해당 경로에 관계없이 모든 경로에서 사용 가능합니다.
- Secure 플래그: 웹 서버에서 중요한 정보를 다룰 때는 Secure 플래그를 사용하여 HTTPS 연결을 통해서만 쿠키를 전송합니다.
- HttpOnly 플래그: HttpOnly 플래그를 설정하면 클라이언트 측 JavaScript가 쿠키에 접근할 수 없으므로 XSS(Cross-Site Scripting) 공격을 방지할 수 있습니다.
- HttpOnly 플래그를 설정하면 쿠키를 HTTP 요청에만 사용할 수 있습니다. 즉, JavaScript에서 쿠키에 접근할 수 없습니다.
- HttpOnly 플래그를 설정하지 않으면 쿠키를 HTTP 요청 및 JavaScript에서 모두 사용할 수 있습니다.
- SameSite 플래그: SameSite 플래그를 설정하여 쿠키의 Cross-Site 요청 제어를 강화하고 CSRF(Cross-Site Request Forgery) 공격을 방지할 수 있습니다.
- SameSite 플래그는 Strict, Lax, None으로 설정할 수 있습니다.
- Strict: 쿠키는 동일한 사이트에서만 사용할 수 있습니다.
- Lax: 쿠키는 동일한 사이트에서만 사용할 수 있으며, 다른 사이트에서는 GET 요청에만 사용할 수 있습니다.
- None: 쿠키는 동일한 사이트 및 다른 사이트에서 모두 사용할 수 있습니다.
- SameSite 플래그는 Strict, Lax, None으로 설정할 수 있습니다.
쿠키 관리 및 제거
웹 브라우저에서 쿠키를 관리하고 제거할 수 있습니다:
- 쿠키 확인: 대부분의 웹 브라우저에서는 개발자 도구를 사용하여 현재 페이지에서 설정된 쿠키를 확인할 수 있습니다. “Application” 탭에서 확인할 수 있습니다.
- 쿠키 삭제: 웹 브라우저 설정에서 쿠키를 삭제하거나 개별적으로 쿠키를 삭제할 수 있습니다.