2026-08-20
Cómo limpiar datos sensibles de logs y JSON antes de compartirlos.
Cada vez que pegas un log, una respuesta de API o un volcado de errores en un ticket o un chat, arriesgas filtrar tokens, correos, IPs y secretos. Así puedes limpiarlo primero.
En el momento en que pegas un archivo de log, una respuesta de API o un volcado de errores en un ticket de Jira, un canal de Slack o un issue de GitHub, es posible que estés compartiendo más de lo que crees. Correos, tokens de autenticación, direcciones IP internas, números de teléfono, IDs de usuario — todo en texto plano, enterrado en JSON anidado o escondido en stack traces. Ocurre todos los días, y la mayoría solo se da cuenta después.
Lo que probablemente estás filtrando sin darte cuenta
Los datos sensibles se esconden donde menos los esperas:
- Tokens JWT en las cabeceras
Authorization— se ven comoeyJhbGciOi...y pueden decodificarse en segundos para revelar claims de usuario y fecha de expiración - Claves de API en query strings y cabeceras —
sk_live_...,AKIA...,xoxb-...— cualquiera de ellas en un log compartido es una fuga de credenciales - Direcciones de correo en objetos de usuario, mensajes de error y logs de auditoría
- Direcciones IP internas en logs de red —
10.x.x.x,192.168.x.x,172.16.x.x— revelan la topología de tu red interna - UUIDs que apuntan a registros reales de usuarios en tu base de datos
- Números de teléfono en formato internacional —
+44...,+1...— en objetos de contacto o logs de SMS - Cadenas hexadecimales largas que en realidad son IDs de sesión, refresh tokens o rutas de archivo con nombres de usuario reales
El problema no es que uno de estos sea difícil de detectar. Es que un volcado de errores de producción puede contener docenas de ellos, anidados en varios objetos, y estás intentando compartirlo rápido porque algo se ha roto.
Por qué la redacción manual falla
Abres el log, buscas @ y ocultas las cinco direcciones de correo que encuentras. Se te escapa la sexta, enterrada tres niveles más abajo en un objeto anidado metadata.contact_info. Buscas cadenas con pinta de token y cazas la cabecera Authorization, pero pasas por alto el refresh token del cuerpo de la respuesta. Ocultas el correo pero dejas el user_id que apunta directamente a él en tu base de datos.
La redacción manual falla porque:
- Tienes prisa — producción está caída y solo necesitas ayuda
- Los logs reales tienen estructuras profundamente anidadas donde el mismo tipo de valor aparece a distintos niveles
- Los stack traces referencian rutas de archivo con nombres de usuario reales —
/home/jsmith/app/src/handler.py - Encuentras los valores obvios pero pasas por alto los poco obvios que siguen apuntando a datos reales
Cómo funciona el Depurador de Privacidad
El Depurador de Privacidad funciona por completo en tu navegador. No se envía nada a ningún servidor — pegas tu texto, lo procesa localmente y te da una versión limpia para copiar.
Esto es lo que hace:
- Detecta JSON automáticamente cuando la entrada se puede interpretar como JSON y la procesa de forma estructural — recorre el árbol de objetos y reemplaza los valores sensibles manteniendo las claves y la estructura intactas
- Recurre al modo texto para CSV, XML, logs sin procesar y cualquier otro formato — busca patrones y reemplaza las coincidencias en línea
- Enmascara los patrones sensibles habituales:
- Direcciones de correo
- Números de teléfono (formatos internacional y estadounidense)
- Direcciones IP (IPv4 e IPv6)
- Tokens JWT (
eyJ...) - Claves de API y tokens (cadenas alfanuméricas largas que coinciden con formatos comunes)
- UUIDs
- Cadenas hexadecimales largas con pinta de IDs de sesión o secretos
- Etiqueta lo que reemplaza — la salida muestra
[REDACTED-EMAIL],[REDACTED-TOKEN],[REDACTED-IP], etc., para que veas qué se ha detectado
Modo JSON frente a modo texto — en qué se diferencian
El modo JSON preserva la estructura y la validez. Los valores se reemplazan, pero las claves y el anidamiento quedan intactos. La salida sigue siendo un JSON válido que puedes pegar en un ticket, y otro desarrollador puede entender la forma de la respuesta sin ver los datos reales.
El modo texto reemplaza las coincidencias en línea dondequiera que aparezcan. La estructura de tu log o CSV se conserva tal cual, pero los valores sensibles se cambian por etiquetas de redacción. Es mejor para:
- Entradas de log de varias líneas con texto y datos estructurados mezclados
- Exportaciones CSV donde quieres mantener las columnas intactas
- XML con valores en línea
- Stack traces con rutas de archivo y nombres de usuario
La herramienta detecta automáticamente qué modo usar, pero lo puedes deducir de la salida — si ves JSON estructurado con valores [REDACTED-*], estaba en modo JSON. Si ves reemplazos en línea en texto libre, estaba en modo texto.
Cuándo es seguro compartir la salida limpia
El depurador detecta los patrones habituales — correos, tokens, IPs, UUIDs, números de teléfono y cadenas con pinta de secreto. Pero no puede conocer tu dominio. Antes de pegar la salida, revisa:
- Nombres en clave de proyectos internos — la herramienta no sabe que “Proyecto Sundance” es un nombre interno confidencial
- IDs de cliente que no son UUIDs — un campo
customer_id: 847291no se detecta porque parece un número entero normal - Rutas de archivo con nombres de usuario reales —
/home/jsmith/o/Users/sarah.chen/en stack traces - Mensajes de error que mencionan a personas reales — “Error al procesar el pago de John Smith” no se marca porque la herramienta no sabe que John Smith es un cliente
El depurador es una primera pasada potente. Añade encima tu propio conocimiento del dominio antes de compartir.
Escenarios reales
Informe de bug en Jira: pegas la respuesta completa de la API, la limpias y compartes la estructura sin los datos. El desarrollador puede ver la forma de la respuesta, el código de error y el anidamiento — sin ver correos ni tokens reales.
Mensaje de Slack durante un incidente: en lugar de hacer una captura de pantalla de un log (difícil de buscar e imposible de copiar y pegar), pegas el texto, lo limpias y compartes la versión limpia. Tus colegas obtienen texto buscable y tú no filtras credenciales en un chat que queda archivado.
Issue de GitHub para una librería de terceros: te topas con un bug en un cliente de API y quieres pegar la petición y la respuesta. Limpia primero — quien mantiene la librería no necesita tu clave de API real para reproducir el problema, y una vez que está en un issue público, los motores de búsqueda lo indexan.
Incorporación de un proveedor o contratista: necesitas compartir una exportación de datos de ejemplo para que pueda crear una integración. La pegas, la limpias y compartes la forma — encabezados de columna, nombres de campo, estructura de anidamiento — sin los registros reales de clientes.
Limpia antes de compartir — siempre
El Depurador de Privacidad lleva unos cinco segundos. Pegas, haces clic, copias, compartes. Es más rápido que el buscar y reemplazar manual, detecta los campos anidados que pasarías por alto y nunca envía nada a un servidor.
Guárdalo en marcadores. La próxima vez que producción esté caída y necesites pegar un log en un ticket, te alegrará haberlo hecho.