HAR dosyaları oturum belirteçleri, kimlik doğrulama başlıkları ve tokenlar içerir. Ne面上 kırmızıya boyanacağı ve paylaşımdan önce nasıl temizleneceği.
Bir HAR (HTTP Archive) dosyası, bir tarayıcı oturumundaki her HTTP istek ve yanıtının JSON günlüğüdür. Chrome DevTools’ta bir HAR kaydettiğinizde şunları yakalar:
Dosya ağ sorunlarını hata ayıklamak için kullanışlıdır. Ayrıca tarayıcınızın kayıt oturumu sırasında gönderdiği her kimlik bilgisinin eksiksiz bir kaydıdır.
İsteklerdeki Cookie başlığı oturum belirteçleri, kimlik doğrulama çerezleri, CSRF belirteçleri ve izleme tanımlayıcıları içerir. Oturum çerezleri özellikle tehlikelidir çünkü kullanıcı hesabına anında erişim sağlar.
{
"name": "Cookie",
"value": "session_id=abc123def456; csrf_token=xyz789; auth_token=eyJhbGc..."
}
Yanıtlardaki Set-Cookie başlığı hassas değerler ve bayraklar içerebilir:
{
"name": "Set-Cookie",
"value": "session_id=abc123def456; Path=/; HttpOnly; Secure; SameSite=Strict"
}
Authorization başlığı Bearer tokenları, Basic kimlik doğrulama kimlik bilgilerini ve API anahtarlarını taşır:
{
"name": "Authorization",
"value": "Bearer eyJhbGciOiJSUzI1NiIs..."
}
{
"name": "Authorization",
"value": "Basic dXNlcjpwYXNzd29yZA=="
}
Basic kimlik doğrulama base64 ile kodlanır, şifrelenmez. Çözülmüş değer user:password’dur.
POST ve PUT istek gövdeleri genellikle kimlik bilgileri içerir:
{
"username": "admin@example.com",
"password": "s3cr3t",
"credit_card": "4111111111111111"
}
API yanıtları da gövdede hassas veri döndürebilir:
{
"access_token": "eyJhbGciOiJSUzI1NiIs...",
"refresh_token": "dGhpcyBpcyBhIHJlZnJlc2ggdG9rZW4",
"user": {
"email": "admin@example.com",
"ssn": "123-45-6789"
}
}
Sorgu dizgelerinde token içeren URL’ler HAR dosyalarında görünür:
https://api.example.com/auth/callback?code=abc123&state=xyz789&redirect_uri=https://app.example.com
OAuth akışlarındaki yetkilendirme kodları ve durum parametreleri hassastır. Kimlik doğrulama akışını tamamlamak için yeniden oynatılabilir.
Ekim 2023’te Okta, bir saldırganın Okta destek oturumlarından HAR dosyalarına eriştiğini açıkladı. HAR dosyaları, saldırganın müşteri kiralanlarına erişmek için kullandığı oturum belirteçleri içeriyordu.
HAR Viewer aracı, muhtemelen hassas veri içeren alanları vurgulayabilir. Şunlara bakın:
Cookie, Authorization, Set-Cookie veya token, key, secret, password veya auth içeren herhangi bir başlıkcode, token, state, session veya key içeren sorgu parametreleripassword, token, secret, access_token veya refresh_token içeren istek/yanıt gövdeleriHAR dosyasını bir metin düzenleyicide açın ve hassas değerleri değiştirin:
// Önce
{
"name": "Authorization",
"value": "Bearer eyJhbGciOiJSUzI1NiIs..."
}
// Sonra
{
"name": "Authorization",
"value": "Bearer [REDACTED]"
}
Çerezler için tüm değeri değiştirin:
{
"name": "Cookie",
"value": "[REDACTED]"
}
Tekrarlanan temizlik için bir betik yazın:
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"]:
# İstek başlıklarını kırmızıya boyayın
for header in entry["request"]["headers"]:
if header["name"].lower() in SENSITIVE_HEADERS:
header["value"] = "[REDACTED]"
# Yanıt başlıklarını kırmızıya boyayın
for header in entry["response"]["headers"]:
if header["name"].lower() in SENSITIVE_HEADERS:
header["value"] = "[REDACTED]"
# Hassas sorgu parametrelerini kırmızıya boyayın
if "queryString" in entry["request"]:
for param in entry["request"]["queryString"]:
if param["name"].lower() in SENSITIVE_QUERY_PARAMS:
param["value"] = "[REDACTED]"
return har
Kontrol listesi:
Authorization başlıkları arayın ve kırmızıya boyayınCookie başlıkları arayın ve kırmızıya boyayınSet-Cookie yanıt başlıkları arayın ve kırmızıya boyayınBearer, eyJ, password, secret, token) arayarak kimlik bilgisi kalmadığını doğrulayınNothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.