DevBento logoDevBento
Herramientas/Visor HAR: Análisis y Limpieza de HTTP Archive/Campos Sensibles en HAR

Campos Sensibles en HAR

Los archivos HAR contienen cookies, cabeceras de autenticación y tokens que pueden comprometer la seguridad. Cubre qué rascar y cómo sanitizar antes de...

Herramientas Relacionadas
jwtDecodificador JWT
Decode auth tokens in network logs
%20Codificador URL y Convertidor de Entidades HTML
Encode URLs from captured requests
{}Formateador y Validador de JSON
Formatea, minifica y valida datos JSON al instante. Resaltado de sintaxis, vista de árbol interactiva y detección de errores. Herramienta en tu navegador.

Qué Capturan los Archivos HAR

Un archivo HAR (HTTP Archive) es un registro JSON de cada petición y respuesta HTTP en una sesión del navegador. Cuando grabas un HAR en Chrome DevTools, captura:

El archivo es útil para depurar problemas de red. También es un registro completo de cada credencial que tu navegador envió durante la sesión de grabación.

Los Campos que Filtran Credenciales

La cabecera Cookie en las peticiones contiene tokens de sesión, cookies de autenticación, tokens CSRF e identificadores de rastreo. Las cookies de sesión son especialmente peligrosas porque otorgan acceso inmediato a la cuenta de un usuario.

{
  "name": "Cookie",
  "value": "session_id=abc123def456; csrf_token=xyz789; auth_token=eyJhbGc..."
}

La cabecera Set-Cookie en las respuestas puede contener valores sensibles y banderas:

{
  "name": "Set-Cookie",
  "value": "session_id=abc123def456; Path=/; HttpOnly; Secure; SameSite=Strict"
}

Cabeceras Authorization

La cabecera Authorization lleva tokens Bearer, credenciales Basic auth y claves API:

{
  "name": "Authorization",
  "value": "Bearer eyJhbGciOiJSUzI1NiIs..."
}
{
  "name": "Authorization",
  "value": "Basic dXNlcjpwYXNzd29yZA=="
}

Basic auth está codificado en base64, no encriptado. El valor decodificado es user:password.

Cuerpos de Petición

Los cuerpos de peticiones POST y PUT a menudo contienen credenciales:

{
  "username": "admin@example.com",
  "password": "s3cr3t",
  "credit_card": "4111111111111111"
}

Las respuestas de API también pueden devolver datos sensibles en el cuerpo:

{
  "access_token": "eyJhbGciOiJSUzI1NiIs...",
  "refresh_token": "dGhpcyBpcyBhIHJlZnJlc2ggdG9rZW4",
  "user": {
    "email": "admin@example.com",
    "ssn": "123-45-6789"
  }
}

Parámetros de Consulta

Las URLs con tokens en cadenas de consulta aparecen en archivos HAR:

https://api.example.com/auth/callback?code=abc123&state=xyz789&redirect_uri=https://app.example.com

Los códigos de autorización y parámetros de estado en flujos OAuth son sensibles. Pueden reproducirse para completar el flujo de autenticación.

El Breach de Okta: Un Ejemplo Real

En octubre de 2023, Okta divulgó que un atacante obtuvo acceso a archivos HAR de sesiones de soporte de Okta. Los archivos HAR contenían tokens de sesión que el atacante usó para acceder a tenants de clientes.

Cómo Rascar Archivos HAR

Raspado Automatizado

La herramienta HAR Viewer puede resaltar campos que probablemente contengan datos sensibles. Busca:

Raspado Manual

Abre el archivo HAR en un editor de texto y reemplaza valores sensibles:

// Antes
{
  "name": "Authorization",
  "value": "Bearer eyJhbGciOiJSUzI1NiIs..."
}

// Después
{
  "name": "Authorization",
  "value": "Bearer [REDACTED]"
}

Para cookies, reemplaza el valor completo:

{
  "name": "Cookie",
  "value": "[REDACTED]"
}

Raspado con Script

Para sanitización repetida, escribe un script:

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"]:
        # Rascar cabeceras de petición
        for header in entry["request"]["headers"]:
            if header["name"].lower() in SENSITIVE_HEADERS:
                header["value"] = "[REDACTED]"

        # Rascar cabeceras de respuesta
        for header in entry["response"]["headers"]:
            if header["name"].lower() in SENSITIVE_HEADERS:
                header["value"] = "[REDACTED]"

        # Rascar parámetros de consulta sensibles
        if "queryString" in entry["request"]:
            for param in entry["request"]["queryString"]:
                if param["name"].lower() in SENSITIVE_QUERY_PARAMS:
                    param["value"] = "[REDACTED]"

    return har

Antes de Compartir un Archivo HAR

Lista de verificación:

  1. Busca cabeceras Authorization y rásalas
  2. Busca cabeceras Cookie y rásalas
  3. Busca cabeceras de respuesta Set-Cookie y rásalas
  4. Revisa parámetros de consulta por tokens, códigos e identificadores de sesión
  5. Escanea cuerpos de petición y respuesta por contraseñas, tokens e PII
  6. Usa HAR Viewer para cargar e inspeccionar el archivo antes de compartir
  7. Verifica que no queden credenciales buscando patrones comunes (Bearer, eyJ, password, secret, token)
🔒

Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.

© 2026 devbento.dev · construido localmenteChangelog