it-box

Cookie 요청 헤더 분석기

붙여 넣은 Cookie 요청 헤더의 이름과 값을 분리하고 중복 이름을 유지합니다.

Cookie 요청 헤더 분석기 도구 열기

Cookie 요청 헤더 한 줄을 쿠키 이름과 값의 목록으로 나눕니다. 개발자 도구에서 복사한 요청 헤더를 붙여 넣어 어떤 쿠키가 전송되었는지 확인할 때 씁니다.

사용 순서

  1. 개발자 도구의 네트워크 탭에서 요청을 고르고 Cookie 헤더 값을 복사합니다.
  2. 입력란에 붙여 넣습니다. Cookie: 접두어는 있어도 없어도 됩니다.
  3. 표에서 쿠키 이름과 값을 확인합니다.
  4. 같은 이름의 쿠키가 여러 개면 표에 각각 나타나므로 순서대로 비교합니다.

예시

Cookie: session=abc==; theme=dark; session=xyz; empty= 를 입력하면 session이 두 행(abc==, xyz)으로, theme은 dark로, empty는 빈 값으로 나옵니다. 첫 번째 등호를 기준으로 나누므로 값 끝의 == 는 그대로 남습니다.

한계

요청 헤더 전용입니다. Set-Cookie 응답 헤더의 Path, Expires, HttpOnly 같은 속성은 해석하지 않습니다. 값은 퍼센트 디코딩을 하지 않으므로 %20 같은 값은 그대로 보입니다. 제어 문자가 들어 있거나 이름이 비어 있으면 오류가 납니다.

보안 주의

세션 쿠키 값은 로그인 상태를 그대로 대신할 수 있습니다. 결과를 공유하기 전에 session, token 같은 값을 가리고, 이미 노출했다면 해당 세션을 로그아웃으로 종료하세요.

배경 지식

쿠키는 서버가 Set-Cookie 응답 헤더로 브라우저에 맡기는 작은 문자열입니다. 브라우저는 같은 사이트로 요청할 때마다 Cookie 요청 헤더에 이름=값 쌍을 세미콜론으로 이어 붙여 보냅니다. 서버는 이 값으로 로그인 상태나 설정을 판단합니다. Path나 Domain 같은 속성은 요청 헤더에 실리지 않으므로, 여기서 보는 것은 이름과 값뿐입니다.

쿠키 문제는 대개 같은 이름이 여러 번 전송될 때 생깁니다. 상위 도메인과 하위 경로에 같은 이름의 쿠키가 있으면 둘 다 한 헤더에 실리고, 서버 프레임워크가 어느 쪽을 쓸지는 구현마다 다릅니다. 이 도구가 중복 항목을 모두 보여 주는 이유가 여기에 있습니다. 값에 등호가 들어 있는 Base64 문자열도 첫 번째 등호에서만 나누어 손상 없이 보여 줍니다.

자주 묻는 질문

쿠키 값에 %3D 같은 문자가 있으면 디코딩해야 하나요?

서버가 쿠키를 만들 때 인코딩했다면 디코딩해야 원래 값이 됩니다. 이 도구는 인코딩 여부를 판단하지 않고 원문을 그대로 보여 줍니다. 값을 확인할 때는 decodeURIComponent로 따로 풀어 보세요.

HttpOnly 쿠키도 이 도구에 붙여 넣어 볼 수 있나요?

요청 헤더에 실린 값이라면 HttpOnly 여부와 관계없이 붙여 넣을 수 있습니다. HttpOnly는 자바스크립트의 document.cookie로 읽지 못하게 하는 속성이므로, 값을 확인할 때는 개발자 도구의 요청 헤더에서 복사하는 것이 가장 확실합니다.

쿠키의 순서가 중요한가요?

규격상 순서 자체에는 의미가 없습니다. 하지만 같은 이름의 쿠키가 여러 개일 때 서버는 특정 순서의 값만 쓰는 경우가 많습니다. 그래서 중복 항목이 있으면 표의 순서를 실제 요청 헤더의 순서와 맞춰 확인하는 편이 좋습니다.