2025. 2. 24. 02:47ㆍIT자격증/정보보안기사
정보보안기사(2023. 3. 11.)
6. 웹사이트의 쿠키(cookie)에 대한 설명으로 틀린 것은?
- ① Set-Cookie 헤더를 통해 쿠키를 설정
- ② 여러개의 값을 추가시 “/” 특수문자를 사용
- ③ 쿠키의 구조는 이름=값 형태로 구성
- ④ 사용자 PC에 저장
정답은 ② 여러개의 값을 추가시 “/” 특수문자를 사용입니다.
쿠키는 이름=값 형태로 구성되며, 여러 개의 값을 추가할 때에는 “;” 세미콜론으로 구분하여 추가합니다.
따라서 “/” 특수문자를 사용하지 않습니다. 따라서 ②번은 틀린 설명입니다.
①번은 웹서버가 클라이언트에게 쿠키를 전송할 때 Set-Cookie 헤더를 사용합니다.
③번은 쿠키는 이름=값 형태로 구성되며, 이름은 문자열, 값은 문자열 또는 숫자, 빈 값 또는 null 값을 사용할 수 있습니다.
④번은 쿠키는 사용자의 PC에 저장되며, 브라우저 종료 후에도 유지될 수 있습니다.
🍪 쿠키(Cookie)란?
쿠키(Cookie)는 웹사이트가 사용자의 브라우저에 저장하는 작은 데이터 파일입니다.
이를 통해 사용자의 로그인 정보, 사이트 설정, 방문 기록 등을 저장하고, 다음 방문 시 사용자 경험을 향상시킬 수 있습니다.
🔹 쿠키의 주요 기능
- 세션 유지(Session Management)
- 로그인 상태 유지 (예: 쇼핑몰에서 로그인을 유지하거나, SNS에서 로그아웃되지 않도록 함)
- 장바구니 정보 저장 (예: 사용자가 장바구니에 추가한 상품을 유지)
- 개인화(Personalization)
- 웹사이트의 테마, 언어 설정 저장
- 맞춤형 광고 제공 (예: 사용자가 검색한 제품과 관련된 광고 표시)
- 트래킹 및 분석(Tracking & Analytics)
- 사용자의 방문 기록을 저장하고, 웹사이트 개선을 위한 분석 데이터를 제공
- 광고 및 마케팅에서 사용자의 행동 패턴을 분석하여 맞춤형 콘텐츠 제공
🔹 쿠키의 종류
쿠키 유형 설명 예시
세션 쿠키 (Session Cookie) | 브라우저가 닫히면 자동으로 삭제됨 | 로그인 상태 유지 |
영구 쿠키 (Persistent Cookie) | 만료일이 설정되어 있으며, 브라우저를 닫아도 유지됨 | 자동 로그인, 맞춤형 광고 |
퍼스트파티 쿠키 (First-Party Cookie) | 사용자가 방문한 사이트에서 직접 생성한 쿠키 | 쇼핑몰 장바구니, 사용자 설정 저장 |
서드파티 쿠키 (Third-Party Cookie) | 다른 도메인(광고 네트워크 등)에서 생성한 쿠키 | 광고 추적, 사용자 행동 분석 |
🔹 세션 쿠키는 임시 저장, 영구 쿠키는 브라우저에 저장됨
🔹 퍼스트파티 쿠키는 사이트 자체에서 설정, 서드파티 쿠키는 광고 네트워크 등에서 설정
🔹 쿠키 동작 방식
1️⃣ 사용자가 웹사이트 방문 → 서버가 브라우저에 쿠키를 생성하여 저장
2️⃣ 사용자가 다시 방문하면 브라우저가 쿠키를 서버로 전송
3️⃣ 서버는 쿠키 정보를 활용해 로그인 유지, 광고 맞춤화 등의 작업 수행
🔹 쿠키와 보안 이슈
✅ 쿠키 하이재킹(Cookie Hijacking)
- 네트워크에서 쿠키가 탈취되면, 공격자가 사용자의 세션을 가로챌 수 있음
- 🔹 해결 방법: HTTPS를 사용하여 쿠키를 암호화
✅ 쿠키 스니핑(Cookie Sniffing)
- 쿠키 데이터를 가로채어 사용자 계정을 탈취하는 공격
- 🔹 해결 방법: Secure 플래그 적용(HTTPS에서만 전송), HttpOnly 플래그 적용(JavaScript에서 접근 금지)
✅ XSS(크로스 사이트 스크립팅) 공격
- 악성 JavaScript가 쿠키를 탈취하는 공격
- 🔹 해결 방법: HttpOnly 속성을 추가하여 JavaScript에서 접근 불가능하게 설정
✅ CSRF(크로스 사이트 요청 위조) 공격
- 사용자의 쿠키를 이용해 악의적인 요청을 보내는 공격
- 🔹 해결 방법: CSRF 토큰을 사용하여 요청을 검증
🔹 쿠키 설정 속성
속성 설명 사용 예시
Expires | 만료 날짜 설정 | Expires=Wed, 21 Mar 2025 12:00:00 GMT |
Max-Age | 쿠키의 유효 기간(초 단위) | Max-Age=3600 (1시간 후 만료) |
Secure | HTTPS 연결에서만 전송 | Secure |
HttpOnly | JavaScript에서 접근 불가 | HttpOnly |
SameSite | CSRF 방지 (Strict, Lax, None) | SameSite=Lax |
🔹 Secure를 설정하면 HTTPS에서만 쿠키가 전송됨
🔹 HttpOnly를 설정하면 JavaScript에서 쿠키 접근이 차단됨
🔹 SameSite를 설정하면 CSRF 공격 방지 가능
🔹 쿠키 vs 로컬스토리지 vs 세션스토리지
항목 쿠키 (Cookie) 로컬 스토리지 (LocalStorage) 세션 스토리지 (SessionStorage)
저장 위치 | 브라우저 | 브라우저 | 브라우저 |
데이터 만료 | 만료 기한 설정 가능 | 영구 저장 (수동 삭제 필요) | 브라우저 종료 시 삭제 |
용량 제한 | 약 4KB | 5MB 이상 | 5MB 이상 |
서버 전송 여부 | 요청마다 자동 전송 | 서버에 자동 전송되지 않음 | 서버에 자동 전송되지 않음 |
보안 | 보안 취약 가능성 있음 | 상대적으로 안전 | 상대적으로 안전 |
🔹 쿠키는 서버에 자동 전송되지만, 로컬/세션 스토리지는 클라이언트 측에서만 사용됨
🔹 보안이 중요한 데이터는 쿠키보다는 로컬 스토리지 또는 세션 스토리지를 사용하는 것이 좋음