Te ofrecemos esta traducción automática para facilitar la lectura.
En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.
A partir de la versión 1.317.0 del agente del browser, la ofuscación también se puede configurar a través de la plataforma de New Relic y NerdGraph para los métodos de instalación del browser de copiar/pegar y NPM, y las aplicaciones inyectadas por APM. Puede configurar las reglas de ofuscación directamente en su JavaScript para las instalaciones de copiar/pegar o NPM.
Aunque New Relic recomienda evitar la información confidencial en la estructura pública de tu aplicación, también entendemos que esto no siempre es posible. Puedes configurar el agente del browser para ofuscar datos de forma selectiva en cada carga que envía. Esto puede ser útil si tu aplicación usa datos confidenciales en lugares que el agente captura, como rutas de navegación, mensajes de error y más.
Configurar regla de ofuscación
Puede crear reglas de ofuscación utilizando uno de los siguientes métodos:
Importante
A partir de la versión 1.317.0 del agente del browser, la ofuscación se puede configurar a través de la plataforma de New Relic y NerdGraph para los métodos de instalación de copiar/pegar y del browser de NPM, y las aplicaciones inyectadas por APM.
Puede crear reglas de ofuscación de ingesta directamente desde la plataforma de New Relic para enmascarar datos confidenciales antes de que se recopilen. Estas reglas se aplican a todos los eventos del browser. Las reglas configuradas a través de la plataforma de New Relic o NerdGraph se aplican a las aplicaciones inyectadas por APM, las instalaciones de copiar y pegar y las instalaciones de NPM. Sin embargo, las instalaciones de copiar y pegar y de NPM pueden anular manualmente las reglas configuradas en la plataforma de New Relic agregando la propiedad obfuscate a su configuración de init.
Sugerencia
Configuración por primera vez: para ver la configuración de la regla de ofuscación en la plataforma de New Relic, primero debe habilitar la captura de carga AJAX. Una vez que se habilita la captura de carga, la sección de regla de ofuscación se muestra en su Application settings. Luego, puede deshabilitar la captura de carga mientras mantiene sus reglas de ofuscación personalizadas.
En Ingest obfuscation rules, haga clic en Add a rule.
En el campo Original value, ingrese un patrón regex para que coincida con los datos confidenciales que desea enmascarar.
En el campo Replace with, ingrese un valor neutral o de reemplazo.
Desde el desplegable Choose where to store, seleccione los tipos de atributos de evento a los que desea aplicar la regla de ofuscación.
Haga clic en Add rule para crear. La regla de ofuscación se aplica a los datos coincidentes en todos los eventos del navegador antes de la ingesta.
Puede configurar el agente del browser para ofuscar datos de forma selectiva en cada carga que envía. Esto es útil si su aplicación utiliza datos confidenciales en lugares que captura el agente, como rutas de navegación, mensajes de error y más.
A partir de la versión 1216 y superior del agente del navegador, la regla de ofuscación se puede aplicar a la carga de cosecha saliente.
Para establecer estas reglas, configure la siguiente propiedad del agente del browser:
La propiedad init.obfuscate contiene una matriz de selectores y reemplazos que se utilizarán para modificar cada cosecha antes de enviarla.
Deberá editar manualmente su sección de configuración de JavaScript y establecer la matriz obfuscate para que contenga sus condiciones de ofuscación.
Recomendaciones
Al configurar esta propiedad, recomendamos lo siguiente:
Utilice patrones de expresiones regulares intencionales para ofuscar solo lo que necesita ofuscación.
La ofuscación excesiva puede tener efectos secundarios, como una menor granularidad al agrupar datos y una menor capacidad para procesar lo que capturó el agente.
Reemplace sus datos confidenciales con términos neutrales y genéricos que también indiquen qué datos se han redactado.
Ejemplo: /account-id/g --> ACCOUNT_ID
Copiar/pegar instalación
Si está utilizando el método de instalación de copiar y pegar, agregue la siguiente configuración a las configuraciones de JavaScript de su browser antes del cargador del agente:
window.NREUM.init={
...<other init properties>...,
obfuscate:[
{
regex:<RegExp| string>,
replacement:<string>,
eventFilter:[<string>]// Optional: specific event types to apply this rule to
},
...<other obfuscation rules>...
]
}
Instalación de NPM
Si utiliza el método de instalación del browser de NPM, agregue la siguiente configuración al inicializar el agente del browser:
newBrowserAgent({
init:{
...<other init properties>...,
obfuscate:[
{
regex:<RegExp| string>,
replacement:<string>,
eventFilter:[<string>]// Optional: specific event types to apply this rule to
},
...<other obfuscation rules>...
]
}
})
Ejemplos: limitar la ofuscación a tipos de eventos específicos
De forma predeterminada, las reglas de ofuscación se aplican a todos los tipos de eventos capturados por el agente del browser. Sin embargo, puede limitar las reglas a tipos de eventos específicos utilizando la propiedad de matriz eventFilter.
Esto es particularmente útil al capturar cargas AJAX, donde es posible que desee ofuscar datos confidenciales en los cuerpos de solicitud/respuesta sin afectar otros eventos.
Sugerencia
Si omite la propiedad eventFilter, la regla se aplica a todos los tipos de eventos, manteniendo la compatibilidad con la configuración existente.
window.NREUM.init={
...<other init properties>...,
obfuscate:[
{
regex:/user-id/g,
replacement:'USER_ID',
eventFilter:['AjaxRequest']// Optional: only apply to specific event types
},
]
}
newBrowserAgent({
init:{
...<other init properties>...,
obfuscate:[
{
regex:/account-id/g,
replacement:'ACCOUNT_ID',
eventFilter:['AjaxRequest','JavaScriptError']// Optional: apply to multiple event types
Cuando habilita la captura de carga AJAX, el agente del browser incluye reglas de ofuscación predeterminadas para proteger los tipos comunes de datos confidenciales. Estas reglas solo se crean la primera vez que habilita la captura de carga AJAX. Si deshabilita y vuelve a habilitar esta característica, las reglas predeterminadas no se volverán a crear:
Sugerencia
Estas reglas se aplican a todas las aplicaciones que tienen habilitada la captura de carga de AJAX. Puede personalizar o deshabilitar estas reglas en la plataforma de New Relic o usando NerdGraph. Recomendamos mantener estas reglas habilitadas a menos que la configuración cause falsos positivos en su caso de uso específico, ya que la captura de carga proporciona una protección importante para los tipos comunes de datos confidenciales.
Dos patrones regex detectan y enmascaran formatos comunes de tarjetas de crédito:
Ambos patrones reemplazan los números de tarjetas de crédito detectados con XXXX-XXXX-XXXX-XXXX.
El siguiente patrón de expresión regular detecta y enmascara los números de Seguro Social comunes con XXX-XX-XXXX:
{
regex:/\b\d{3}-?\d{2}-?\d{4}\b/g,
replacement:'XXX-XX-XXXX',
eventFilter:['AjaxRequest']
}
Ofuscación e identificación de usuario
Si utiliza la API newrelic.setUserId() para identificar a los usuarios, tenga en cuenta que las reglas de ofuscación se aplican a todos los datos recopilados por el agente del browser, incluido el atributo enduser.id establecido por setUserId().
Esto puede crear conflictos si utiliza direcciones de correo electrónico u otra PII como identificador de usuario y, al mismo tiempo, ofusca ese mismo tipo de datos en la carga AJAX.
Escenario de ejemplo
Supongamos que:
Usar direcciones de correo electrónico como ID de usuario: newrelic.setUserId('user@example.com')
Configure la ofuscación para enmascarar direcciones de correo electrónico en los cuerpos de solicitud/respuesta de AJAX
El problema: debido a que las reglas de ofuscación se aplican a todos los datos del evento (no solo a la carga AJAX), el atributo enduser.id también se ofuscará y aparecerá como EMAIL_REDACTED en lugar del correo electrónico real.
Soluciones
El enfoque recomendado es utilizar un identificador no confidencial para setUserId(), como:
Si debe usar direcciones de correo electrónico como ID de usuario, cree reglas de ofuscación que tengan como objetivo rutas JSON o nombres de atributos específicos, en lugar de coincidir con patrones de correo electrónico globalmente:
{
// More specific: only match emails in known sensitive fields
regex:/("customerEmail"\s*:\s*")[^"]+(@[^"]+")/g,
replacement:'$1EMAIL_REDACTED$2',
eventFilter:['AjaxRequest']
}
Este enfoque requiere pruebas cuidadosas para asegurar que está capturando todos los datos confidenciales mientras evita falsos positivos.
Advertencia
Pruebe siempre sus reglas de ofuscación exhaustivamente en un entorno de desarrollo antes de desplegar en producción. Use la pestaña de red de las herramientas para desarrolladores del navegador para inspeccionar las cargas reales que se envían a New Relic.