OneWebDesk

쿠키 보안 점검

응답 쿠키의 Secure·HttpOnly·SameSite 플래그를 점검합니다.

쿠키 보안 점검은 웹사이트가 브라우저에 내려보내는 Set-Cookie 헤더를 실시간으로 가져와, 각 쿠키에 Secure·HttpOnly·SameSite 같은 보안 속성이 제대로 설정돼 있는지 확인하는 도구입니다. 세션 쿠키나 로그인 토큰이 탈취·변조에 취약하지 않은지 빠르게 진단할 수 있습니다.

URL만 입력하면 서버가 해당 페이지에 안전하게 요청을 보내 응답 헤더의 쿠키를 분석합니다. 쿠키 값 자체는 판단에 쓰지 않으며, 속성 누락 여부를 정상/주의 상태로 표시합니다. 점검 결과는 잠시 캐싱되어 빠르게 응답합니다.

세 가지 핵심 보안 속성

  • Secure: HTTPS 연결에서만 쿠키를 전송합니다. 없으면 평문 HTTP에서도 쿠키가 노출돼 중간자 공격에 취약합니다. 로그인·세션 쿠키에는 필수입니다.
  • HttpOnly: 자바스크립트(document.cookie)에서 쿠키에 접근할 수 없게 막습니다. XSS가 발생해도 세션 쿠키 탈취를 어렵게 만듭니다.
  • SameSite: 다른 사이트에서 발생한 요청에 쿠키를 보낼지 제어합니다. Strict/Lax는 CSRF 위험을 크게 줄이고, None은 반드시 Secure와 함께 써야 합니다.

점검 결과 읽는 법

쿠키마다 Secure와 HttpOnly가 설정돼 있으면 정상, 누락되면 주의로 표시됩니다. SameSite 값(Strict/Lax/None)도 함께 보여줍니다. 민감한 인증 쿠키라면 Secure + HttpOnly + SameSite=Lax(또는 Strict)를 기본 권장 조합으로 삼고, 도메인·경로·만료(Expires/Max-Age) 범위가 의도보다 넓지 않은지 확인하세요. 쿠키와 함께 보안 헤더 점검으로 HSTS·CSP 같은 응답 헤더까지 살펴보면 사이트의 기본 방어 수준을 한 번에 가늠할 수 있습니다.

쿠키 이름 접두사(__Secure- / __Host-)

쿠키 이름 자체에 보안 규칙을 강제하는 접두사가 있습니다. 브라우저는 규칙을 어긴 접두사 쿠키를 아예 거부하므로, 점검 결과에서 이 접두사가 보이면 해당 속성 조합이 보장된 셈입니다.

접두사브라우저가 강제하는 조건대표 용도
__Secure-Secure 필수 + HTTPS 출처에서만 설정 가능HTTPS 전용 세션 쿠키
__Host-Secure 필수 + Path=/ 필수 + Domain 속성 금지(현재 호스트에 고정)서브도메인 탈취에 강한 로그인 쿠키

실제 Set-Cookie 한 줄 해석 예시

서버가 다음 헤더를 보냈다고 가정해 봅니다.

Set-Cookie: sid=ab12cd; Path=/; Secure; HttpOnly; SameSite=Lax; Max-Age=3600

  • sid = 세션 식별자(값 ab12cd는 판단에 쓰지 않음).
  • Secure ✓ + HttpOnly ✓ → 두 핵심 속성 모두 충족이라 정상으로 표시됩니다.
  • SameSite=Lax → 외부 링크 클릭에는 전송, 이미지·iframe·교차 사이트 POST에는 미전송 → CSRF 위험 낮음.
  • Max-Age=3600 → 1시간 후 만료. Domain 속성이 없으므로 이 쿠키는 정확히 발급한 호스트에만 묶입니다(가장 안전한 기본값).

만약 같은 줄에서 HttpOnly가 빠지고 Domain=.example.com이 붙었다면, XSS로 토큰이 읽힐 수 있고 모든 서브도메인으로 쿠키가 퍼지므로 주의 신호가 됩니다.

흔한 실수 / 함정

가장 흔한 함정은 Domain 속성을 일부러 넓게 잡는 것입니다. Domain을 아예 지정하지 않으면 쿠키는 발급한 정확한 호스트(app.example.com)에만 전송되지만,Domain=.example.com처럼 적으면 모든 서브도메인으로 퍼집니다. 그러면 보안 수준이 낮은blog.example.com 같은 곳의 XSS 하나로 로그인 쿠키가 노출될 수 있습니다. 또한 점검에서 Secure가 빠진 것처럼 보이지만 실제로는 __Host- 접두사가 강제하고 있는 경우는 없습니다 — 그 접두사 쿠키가 보이면 브라우저가 이미 SecurePath=/를 검증한 것이니 안심해도 됩니다.

자주 묻는 질문

쿠키가 하나도 안 보여요.
해당 페이지가 응답에서 Set-Cookie 헤더를 보내지 않으면 점검할 쿠키가 없습니다. 로그인 이후나 특정 경로에서만 쿠키를 설정하는 사이트도 많습니다.
SameSite=Lax와 Strict는 어떻게 다른가요?
Strict는 외부 사이트에서 시작된 모든 요청에 쿠키를 보내지 않아 가장 안전하지만, 외부 링크로 들어온 사용자가 로그아웃 상태로 보이는 등 사용성 문제가 생길 수 있습니다. Lax는 최상위 내비게이션(링크 클릭)에는 쿠키를 보내므로, 대부분의 인증 쿠키에는 Lax가 보안과 사용성의 균형점입니다.
Secure가 없으면 무조건 위험한가요?
세션·인증 쿠키라면 위험 신호입니다. 단순 분석용 비민감 쿠키라면 영향이 작을 수 있지만, HTTPS 사이트라면 Secure를 켜는 것을 권장합니다.
SameSite=None은 나쁜 설정인가요?
교차 사이트 사용이 필요한 경우(예: 결제·임베드)에는 정당합니다. 다만 None은 반드시 Secure와 함께 써야 하며, 그렇지 않으면 최신 브라우저가 쿠키를 거부합니다.
입력한 URL이나 쿠키 값이 저장되나요?
쿠키 값은 보안 판단에 사용하지 않으며 외부로 전송하거나 영구 저장하지 않습니다. 점검 결과만 부하 절감을 위해 짧게(약 60초) 캐싱합니다.

관련 가이드

관련 도구

웹 보안