HAR-Dateien enthalten Cookies, Auth-Header und Token, die die Sicherheit gefährden. Was zu schwärzen ist und wie man vor dem Teilen bereinigt.
Eine HAR-Datei (HTTP Archive) ist ein JSON-Log jeder HTTP-Anfrage und -Antwort in einer Browsersitzung. Wenn Sie in Chrome DevTools eine HAR aufzeichnen, wird erfasst:
Die Datei ist nützlich zum Debuggen von Netzwerkproblemen. Sie ist auch eine vollständige Aufzeichnung jeder Anmeldeinformation, die Ihr Browser während der Aufzeichnungssitzung gesendet hat.
Der Cookie-Header in Anfragen enthält Sitzungs-Token, Auth-Cookies, CSRF-Token und Tracking-Identifikatoren. Sitzungs-Cookies sind besonders gefährlich, weil sie sofortigen Zugriff auf das Konto eines Benutzers gewähren.
{
"name": "Cookie",
"value": "session_id=abc123def456; csrf_token=xyz789; auth_token=eyJhbGc..."
}
Der Set-Cookie-Header in Antworten kann ebenfalls sensible Werte und Flags enthalten:
{
"name": "Set-Cookie",
"value": "session_id=abc123def456; Path=/; HttpOnly; Secure; SameSite=Strict"
}
Der Authorization-Header trägt Bearer-Token, Basic-Auth-Anmeldeinformationen und API-Schlüssel:
{
"name": "Authorization",
"value": "Bearer eyJhbGciOiJSUzI1NiIs..."
}
{
"name": "Authorization",
"value": "Basic dXNlcjpwYXNzd29yZA=="
}
Basic-Auth ist base64-kodiert, nicht verschlüsselt. Der dekodierte Wert ist user:password.
POST- und PUT-Anfrage-Body enthalten häufig Anmeldeinformationen:
{
"username": "admin@example.com",
"password": "s3cr3t",
"credit_card": "4111111111111111"
}
API-Antworten können ebenfalls sensible Daten im Body zurückgeben:
{
"access_token": "eyJhbGciOiJSUzI1NiIs...",
"refresh_token": "dGhpcyBpcyBhIHJlZnJlc2ggdG9rZW4",
"user": {
"email": "admin@example.com",
"ssn": "123-45-6789"
}
}
URLs mit Token in Query-Strings erscheinen in HAR-Dateien:
https://api.example.com/auth/callback?code=abc123&state=xyz789&redirect_uri=https://app.example.com
Autorisierungscodes und State-Parameter in OAuth-Flüssen sind sensibel. Sie können wiederverwendet werden, um den Authentifizierungsfluss abzuschließen.
Im Oktober 2023 gab Okta bekannt, dass ein Angreifer Zugriff auf HAR-Dateien aus Okta-Support-Sitzungen erlangt hatte. Die HAR-Dateien enthielten Sitzungs-Token, die der Angreifer verwendete, um auf Kundentenants zuzugreifen.
Das HAR Viewer Tool kann hervorheben, welche Felder wahrscheinlich sensible Daten enthalten. Achten Sie auf:
Cookie, Authorization, Set-Cookie oder jeden Header, der token, key, secret, password oder auth enthältcode, token, state, session oder key enthaltenpassword, token, secret, access_token oder refresh_token enthaltenÖffnen Sie die HAR-Datei in einem Texteditor und ersetzen Sie sensible Werte:
// Vorher
{
"name": "Authorization",
"value": "Bearer eyJhbGciOiJSUzI1NiIs..."
}
// Nachher
{
"name": "Authorization",
"value": "Bearer [REDACTED]"
}
Für Cookies ersetzen Sie den gesamten Wert:
{
"name": "Cookie",
"value": "[REDACTED]"
}
Für wiederholte Bereinigung schreiben Sie ein Skript:
import json
SENSITIVE_HEADERS = {"authorization", "cookie", "set-cookie", "proxy-authorization"}
SENSITIVE_QUERY_PARAMS = {"code", "token", "state", "session", "key", "secret"}
def sanitize_har(har_path):
with open(har_path) as f:
har = json.load(f)
for entry in har["log"]["entries"]:
# Anfrage-Header schwärzen
for header in entry["request"]["headers"]:
if header["name"].lower() in SENSITIVE_HEADERS:
header["value"] = "[REDACTED]"
# Antwort-Header schwärzen
for header in entry["response"]["headers"]:
if header["name"].lower() in SENSITIVE_HEADERS:
header["value"] = "[REDACTED]"
# Sensible Query-Parameter schwärzen
if "queryString" in entry["request"]:
for param in entry["request"]["queryString"]:
if param["name"].lower() in SENSITIVE_QUERY_PARAMS:
param["value"] = "[REDACTED]"
return har
Checkliste:
Authorization-Headern suchen und schwärzenCookie-Headern suchen und schwärzenSet-Cookie-Antwort-Headern suchen und schwärzenBearer, eyJ, password, secret, token)Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.