HAR 파일 분석기
Chrome, Firefox, Safari에서 내보낸 HAR 파일을 브라우저에서 분석합니다. 정렬되는 워터폴, 요청 상세와 cURL, 느리거나 실패한 요청을 보고 쿠키와 토큰을 지운 사본을 내보냅니다. 업로드 없음.
- 브라우저에서 처리
- 데이터가 브라우저 밖으로 나가지 않습니다
- 무료 · 회원가입 불필요
WeChat으로 스캔하여 공유
예시·자세한 설명·자주 묻는 질문 실제 출력이 있는 예시, 다른 도구와의 차이, 자주 묻는 질문.
동영상 재생 문의에 HAR를 보낼 때
Kollus 기술 지원팀은 동영상 재생 문제를 분석할 때 HAR 파일 제출을 요청할 수 있다고 안내합니다. 그런데 Kollus 플레이어는 https://v.kr.kollus.com/s?jwt={JWT}&custom_key={CUSTOM_KEY} 형식의 URL로 호출되고, 문서에 따르면 custom_key(사용자 키)는 보안 키를 암호화한 값입니다. 재생 과정을 기록한 HAR에는 이 URL이 그대로 들어갑니다.
이 도구로 마스킹하면 두 매개변수의 값만 바뀌고 나머지는 남습니다(예시 URL의 값은 지어낸 것입니다).
https://v.kr.kollus.com/s?jwt=[redacted]&custom_key=[redacted]&autoplay=1
세그먼트 요청이 수백 개라면 “요청”에서 유형을 Media로 좁히거나 URL 단어로 필터링한 뒤 “표시된 N개”만 내보내면 파일도 작아집니다.
무엇을 지우고 무엇을 남기나
- Cookie, Set-Cookie, Authorization 헤더의 값(Bearer 같은 방식 이름은 남김)과
cookies목록의 모든 값. - 이름이 자격 증명처럼 보이는 헤더, URL 매개변수(쿼리와 프래그먼트), 폼 필드, multipart, JSON 키(깊이와 상관없이). token, secret, password, session, api key, signature, csrf,
code,sid, 이번 예처럼custom_key등이 대상이고,token_type이나Access-Control-Allow-Credentials는 남깁니다. - 그 밖의 위치에 있는 토큰 형식 문자열: JWT, Bearer 값, GitHub·Stripe·AWS 등의 키 형식(API 키 마스킹 도구와 같은 규칙).
- 지운 값이 파일의 다른 곳(HTML, 다른 URL)에 또 있으면 거기도 바꿉니다. 저장하기 전에 파일을 다시 읽어 지운 값이 하나도 남지 않았는지 확인합니다.
쿠키 이름과 Set-Cookie 속성(Path, Secure, HttpOnly, SameSite)은 남기므로 “어떤 쿠키가 전송됐는지”, “속성이 맞는지”는 사본에서도 확인할 수 있습니다. 예제 HAR의 로그인 요청은 이렇게 바뀝니다.
set-cookie: session=[redacted]; Path=/; Secure; HttpOnly; SameSite=Lax
{"email":"shopper@example.com","password":"[redacted]","remember":true}
{"user":{"id":42,"name":"Demo Shopper"},"access_token":"[redacted]","expires_in":3600}
이메일 같은 개인정보는 자격 증명이 아니므로 남습니다. 남긴 본문 개수를 보고서에 표시하니, 필요하면 “추가로 마스킹할 이름”에 email을 넣거나 본문을 삭제하세요.
워터폴 읽기
막대는 startedDateTime에서 시작하고 HAR 1.2의 timings에 따라 최대 일곱 구간으로 나뉩니다: 대기열 / 지연(blocked), DNS, 연결, TLS(ssl), 전송, 대기(첫 바이트까지), 수신. -1은 그 단계가 없었다는 뜻이며 “해당 없음”으로 표시합니다. 세로선은 DOMContentLoaded와 load입니다.
Chrome과 Safari는 규격대로 TLS를 connect에 넣으므로 막대에서 그 부분을 TCP와 TLS로 나눕니다. Firefox는 둘을 따로 기록하고 time에는 둘 다 더합니다.
connect 18 ms + ssl 21 ms (time 151 ms = sum of all seven)
규격 공식만 쓰는 도구에서는 Firefox의 HTTPS 요청 막대가 21ms 짧게 그려지고 모든 요청에 “합계 불일치”가 표시됩니다. 전송량은 Chrome과 Safari에서는 _transferSize, Firefox에서는 전송량 전체가 들어 있는 bodySize에서 읽습니다.
다른 HAR 도구와 비교
2026-10-01에 같은 파일(예제 HAR에 x-session-id 헤더와, 3,200자 뒤에 중첩된 refresh_token이 있는 요청을 더한 것)을 불러와 마스킹 결과에서 자격 증명 7개를 찾아봤습니다.
| 도구 | 결과에 남은 것 |
|---|---|
| haranalyzer.com(한국어판) “민감 정보 제거된 HAR 다운로드” | HTTP/2 :path 헤더에 남은 access_token, sid=의 세션 ID, x-session-id. 본문은 모두 삭제 |
| Google Admin Toolbox HAR Analyzer 마스킹 버튼 | 요청 본문의 비밀번호, x-session-id, 중첩된 refresh_token, HTML과 sid=의 세션 ID |
| Chrome 기본 내보내기 | Cookie·Set-Cookie·Authorization 헤더 세 개 말고는 전부 |
| 이 도구(기본 설정) | 7개 모두 바뀜. 이메일은 남고, 남긴 본문 개수를 보고 |
세 도구 모두 파일을 서버로 보내지 않았습니다. 본문을 통째로 지우면 간단하지만, 재생 오류의 원인이 응답 내용에 있을 때도 있습니다. 이 도구는 기본으로 자격 증명만 바꾸고 본문 삭제는 선택하게 했습니다. cURL 명령은 Chrome DevTools의 “Copy as cURL”과 같은 방식(작은따옴표, HTTP/2 의사 헤더 제외)이며 cURL 코드 변환기에 붙여 넣어 코드로 바꿀 수 있습니다.
FAQ
HAR 파일은 어떻게 내보내나요?
Chrome / Edge는 개발자 도구의 Network(네트워크) 패널에서 문제를 재현한 뒤 내보내기 버튼을 누릅니다. Chrome 130부터 기본 내보내기에는 Cookie, Set-Cookie, Authorization 헤더가 빠집니다. 포함하려면 Settings > Preferences > Network에서 Allow to generate HAR with sensitive data를 켜고, 내보내기 버튼을 길게 눌러 Export HAR (with sensitive data)를 고릅니다. Firefox는 요청 목록의 오른쪽 클릭 메뉴(영어 화면에서는 Save All As HAR), Safari는 웹 인스펙터의 네트워크 탭 내보내기 버튼을 씁니다.
Chrome 기본 내보내기 파일은 그대로 공유해도 되나요?
꼭 그렇지는 않습니다. Chrome이 지우는 것은 헤더 세 개와 쿠키 목록뿐이고, URL의 토큰, 요청 본문의 비밀번호, CSRF·API 키 같은 사용자 정의 헤더, 응답 본문은 남습니다. 파일을 불러오면 "이 파일에 있는 민감한 정보" 카드에 남은 개수가 나옵니다.
HAR 파일이 업로드되나요?
아니요. 파일은 이 탭 안에서 읽고 분석하며, 내용을 담은 요청은 보내지 않습니다. 저장하지도 않습니다. 이 도구 페이지는 Google 애널리틱스와 AdSense를 불러오지 않습니다. "다른 파일 열기"나 새로고침으로 메모리에서 지워집니다.
entry.time과 타이밍 합계가 왜 다른가요?
HAR 1.2에서 entry.time은 blocked, dns, connect, send, wait, receive의 합이고 ssl은 connect에 포함됩니다. Firefox는 connect에 TCP 시간만 넣고 ssl을 따로 더합니다. 이 도구는 항목마다 어느 합계가 맞는지 확인해서 막대를 그립니다. 1.5ms를 넘는 차이는 "발견한 점"과 "타이밍" 탭에 표시합니다.
일부 요청만 내보낼 수 있나요?
네. "요청"에서 URL 단어, 상태, 유형으로 필터링한 뒤 "마스킹 후 내보내기"에서 "표시된 N개"를 고르면 됩니다. 내보낸 파일은 HAR 1.2라서 DevTools에서 다시 불러올 수 있습니다. cURL 복사도 같은 필터를 따릅니다.