Documentación
Privacidad y enmascarado
Qué se enmascara por defecto en el navegador, cómo ocultar elementos y cómo agregar tus propias reglas.
Wutbug enmascara los datos sensibles en el navegador del usuario, antes de enviar nada. Los valores enmascarados nunca llegan a nuestros servidores. Además, nada se sube hasta que la persona envía un reporte (salvo que actives la captura automática).
Lo que se enmascara por defecto
Replay y captura de pantalla
- El valor de todos los inputs, textareas y selects (
maskAllInputs: true). Se ve como•••. - Las contraseñas, siempre, aunque desactives
maskAllInputs. - El texto de los elementos con
class="wutbug-mask"odata-wutbug-mask. - Los elementos con
class="wutbug-block"odata-wutbug-blockse reemplazan por un bloque gris: no se graba su contenido. - No se graban canvas ni se incrustan imágenes en el replay.
Headers de requests y respuestas
El valor de estos headers se reemplaza por [REDACTED]:
authorization, proxy-authorization, cookie, set-cookie, x-api-key, x-auth-token, x-csrf-token, x-xsrf-token.
Claves en JSON, formularios y URLs
Si el nombre de una clave JSON, un campo x-www-form-urlencoded o un parámetro de la URL coincide con alguno de estos patrones (sin distinguir mayúsculas, en cualquier parte del nombre), su valor se reemplaza por [REDACTED]:
pass(word)?, pwd, secret, token, api[-_]?key, authorization, ^auth$, auth[-_]?token, cookie, session(id)?, credit[-_]?card, card[-_]?number, cvv, cvc, ssn.
Por ejemplo, access_token, userPassword y x-api-key coinciden. También se quitan el usuario y la contraseña incrustados en una URL (https://user:pass@…).
Texto libre
En todo texto capturado (argumentos de consola, mensajes de error, stack traces, URLs y bodies) se buscan y reemplazan:
- JWT (
eyJ….eyJ….…). - Credenciales en texto:
Bearer …,Basic …,Token …. - Keys de proveedores: Stripe (
sk_live_…,rk_test_…), GitHub (ghp_…,gho_……), Slack (xoxb-……) y AWS (AKIA…). - Números de tarjeta: secuencias de 13 a 19 dígitos que pasan la verificación de Luhn.
Bodies
- Se truncan a 10.000 caracteres (
maxBodyLength). - Los bodies binarios y en streaming no se leen.
- Con
captureBodies: falseno se captura ningún body.
Ocultar partes de tu página
<p class="wutbug-mask">Ana Pérez · RUT 12.345.678-9</p>
<div class="wutbug-block">
<iframe src="https://pagos.example.com/tarjeta"></iframe>
</div>Si no puedes tocar el HTML, usa selectores:
wutbug.init({
projectKey: 'pk_tu_key',
endpoint: 'https://api.wutbug.dev',
privacy: {
maskTextSelector: '.perfil-nombre, [data-pii]',
blockSelector: '#widget-pagos',
},
});Agregar tus propias reglas
Las reglas propias se suman a las de por defecto; nunca las reemplazan.
wutbug.init({
projectKey: 'pk_tu_key',
endpoint: 'https://api.wutbug.dev',
privacy: {
redactHeaders: ['x-tenant-secret'], // headers
redactKeys: ['rut', 'dni', 'telefono'], // claves JSON / formularios / query (regex)
redactPatterns: [/\bACME-\d{6}\b/], // cualquier texto
captureBodies: true,
maxBodyLength: 10_000,
},
ignoreUrls: ['https://pagos.example.com', /\/api\/medical\//], // requests que no se registran
});beforeSend: el último filtro
Para casos que las reglas no cubren, edita o descarta el reporte antes de enviarlo:
wutbug.init({
projectKey: 'pk_tu_key',
endpoint: 'https://api.wutbug.dev',
beforeSend(report) {
report.network = report.network.filter((r) => !r.url.includes('/api/salud/'));
return report;
},
});Lo que no se enmascara
- Texto visible en la página que no esté en un input ni marcado con
wutbug-mask: nombres, direcciones o montos que tu app muestre se ven en el replay y la captura. - La grabación de pantalla opcional es un video de lo que la persona elige compartir: no se puede enmascarar. Solo existe si el usuario la inicia y acepta el permiso del navegador.
- Lo que tu app pase a
setUser()ysetMetadata()se guarda tal cual. - Lo que tu app escriba en la consola se guarda, salvo lo que coincida con los patrones de texto libre.
Recomendaciones
- Marca con
wutbug-masklas zonas con datos personales visibles (perfil, direcciones, tablas de clientes). - Usa
wutbug-blocken iframes y widgets de pago o salud. - Agrega a
redactKeyslos identificadores de tu país o industria (rut,dni,curp,nss…). - Agrega a tu política de privacidad el texto sugerido sobre Wutbug.
- Elige una retención acorde a lo que necesitas.