Co to jest format pliku HAR?
Plik .har - skrót od HTTP Archive - to oparty na formacie JSON dziennik, który rejestruje każde żądanie i odpowiedź HTTP wymienione podczas sesji przeglądarki. Przeglądarki, serwery proxy i narzędzia do monitorowania wydajności eksportują pliki .har, aby programiści i inżynierowie wsparcia mogli odtwarzać, sprawdzać i analizować aktywność sieciową w trybie offline.
Format powstał około 2007 roku jako format eksportu panelu Net w Firebug, a później został sformalizowany w szkicu edytorskim W3C w 2012 roku. HAR 1.2 to wersja zapisywana obecnie przez wszystkie główne przeglądarki: Chrome, Edge, Firefox i Safari posiadają opcję Zapisz wszystko jako HAR w zakładce Sieć narzędzi deweloperskich.
Wewnętrznie plik .har jest pojedynczym obiektem JSON z jednym kluczem najwyższego poziomu - log - zawierającym:
version- zawsze1.2w nowoczesnych eksportach (starsze narzędzia zapisywały1.1)pages[]- jeden wpis na każde załadowanie strony, z ogólnym czasem ładowaniaentries[]- jeden wpis na parę żądanie/odpowiedź HTTP, w tym URL, metodę, kod statusu, nagłówki, pliki cookie, przesłane dane formularza i czasy poszczególnych etapów (wyszukiwanie DNS, połączenie TCP, uścisk dłoni TLS, wysyłanie, oczekiwanie, odbieranie)
Ponieważ pliki .har przechowują to wszystko jako zwykły tekst UTF-8, mogą zawierać wrażliwe dane, takie jak pliki cookie sesji, tokeny autoryzacji i pełne treści odpowiedzi. Traktuj je jak dane uwierzytelniające przed publicznym udostępnieniem lub dołączeniem do zgłoszenia serwisowego.
Zespoły wsparcia w usługach takich jak Microsoft 365, Okta, Zendesk i Cloudflare rutynowo proszą użytkowników o nagranie i dołączenie pliku .har, aby pomóc w diagnozowaniu błędów logowania, powolnego ładowania stron i błędów API. Badacze bezpieczeństwa ładują również eksporty .har do narzędzi takich jak Fiddler lub Wireshark, aby sprawdzać i odtwarzać przechwycone sesje.
Pliki rosną szybko: proste załadowanie strony może wygenerować 200 KB-2 MB; nagranie złożonej sesji trwającej kilka minut może przekroczyć 100 MB. Format nie posiada wbudowanej kompresji, choć pliki .har są rutynowo pakowane zewnętrznie do formatu gzip w celu przechowywania lub przesyłania. Każdy edytor tekstu może je otworzyć - ponieważ są zwykłym JSON - a dedykowane analizatory, takie jak Google Admin Toolbox HAR Analyzer, prezentują dane jako interaktywne tabele kaskadowe (waterfall) żądań i odpowiedzi.
Bezpieczeństwo
RYZYKO: HIGHZagrożeniem związanym z HAR nie jest złośliwe oprogramowanie, ale WYCIEK DANYCH. HAR przechowuje wszystko, co przeglądarka wysłała i odebrała w formie jawnej: pliki cookie sesji, tokeny OAuth/bearer, klucze API, tokeny CSRF, pełne treści POST, a czasem wpisane hasła. Każdy, kto wejdzie w posiadanie pliku, może często odtworzyć uwierzytelnioną sesję użytkownika. Głośne incydenty (np. naruszenie systemu wsparcia Okta w 2023 r., gdzie skradzione pliki HAR zawierały tokeny sesji) czynią to zagrożenie realnym. Przed udostępnieniem HAR: wygeneruj go BEZ zawartości odpowiedzi, jeśli to możliwe, i przepuść go przez narzędzie do czyszczenia (np. „HAR sanitizer” od Cloudflare/Google lub narzędzie har-sanitizer), aby usunąć pliki cookie, nagłówki Authorization i tokeny. Nigdy nie publikuj surowego pliku HAR w publicznym zgłoszeniu, na forum ani na czacie. Sam plik nie jest wykonywalny, więc otwarcie go do ODCZYTU jest bezpieczne.
Szczegóły formatu
w pigułce- Resource Interchange Audio (stary .HAR) - Kilka starych gier z ery DOS używało rozszerzenia .har dla spakowanych archiwów audio/zasobów; nie ma to związku z HTTP Archive.
Programy otwierające pliki HAR
Szczegóły techniczne
specyfikacja| Format kontenera | JSON (zwykły tekst, UTF-8) |
| Typ MIME | application/json; zarejestrowany również jako application/har+json |
| Sygnatura pliku | Brak - identyfikowany przez strukturę JSON; plik prawie zawsze zaczyna się od {"log":{"version":"1.2" |
| Wewnętrzne pole wersji | pole log.version: „1.2” we wszystkich nowoczesnych eksportach; starsze narzędzia zapisywały „1.1” |
| Schemat najwyższego poziomu | {log:{version, creator, browser, pages[], entries[]}} - jeden element entries[] na parę żądanie/odpowiedź HTTP |
| Pola czasu dla wpisu | Rozdzielczość milisekundowa dla każdego etapu: dns, connect, ssl, send, wait (TTFB), receive - umożliwia analizę wykresu kaskadowego |
| Obsługa treści binarnych | Binarne treści odpowiedzi są kodowane w base64 wewnątrz pola tekstowego JSON |
| Kompresja | Brak wbudowanej; powszechnie pakowane zewnętrznie jako .har.gz do przechowywania lub przesyłania |
| Wrażliwość prywatności | Wysoka - przechowuje pliki cookie, nagłówki autoryzacji, tokeny autoryzacji oraz pełne treści żądań/odpowiedzi w formacie jawnym |
| Typowy rozmiar pliku | 200 KB - 50 MB na sesję; sesje bogate w multimedia lub przedłużone mogą przekroczyć 100 MB |
| Obsługa platform | Eksportowane przez narzędzia deweloperskie Chrome, Edge, Firefox i Safari; importowane przez Charles Proxy, Fiddler, Proxyman i inne |
| Główne przypadki użycia | Analiza wydajności, debugowanie stron WWW, diagnostyka wsparcia (Microsoft 365, Okta, Zendesk, Cloudflare) oraz audyt ruchu HTTP |
| Limit liczby wpisów | Nieograniczony - tablica entries rośnie z każdym przechwyconym żądaniem; ograniczona jedynie dostępną pamięcią |
| Wydano | 2007 (HAR 1.1 draft, Firebug Net panel); W3C draft 'HTTP Archive (HAR) format' 2012 |
| Najnowsza wersja | HAR 1.2 (the version recorded inside every modern export's log.version field) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | www.softwareishard.com |
Konwersje HAR
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki HAR.