Cette traduction automatique est fournie pour votre commodité.
En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.
À partir de la version 1.317.0 de l’agent Browser, l’obfuscation peut également être configurée via la plateforme New Relic et NerdGraph pour les méthodes d’installation de navigateur par copier/coller et NPM, ainsi que pour les applications injectées par l’APM. Vous pouvez configurer des règles d’obfuscation directement dans votre JavaScript pour les installations par copier/coller ou NPM.
Bien que New Relic recommande d’éviter les informations sensibles dans la structure publique de votre application, nous comprenons également que ce n’est pas toujours possible. Vous pouvez configurer l’agent Browser pour obfusquer sélectivement les données dans chaque charge qu’il envoie. Cela peut être utile si votre application utilise des données sensibles à des endroits que l’agent capture, tels que les chemins de navigation, les messages d’erreur, et plus encore.
Configurer les règles d'obfuscation
Vous pouvez créer des règles d'obfuscation à l'aide de l'une des méthodes suivantes :
Important
À partir de la version 1.317.0 de l'agent Browser, l'obfuscation peut être configurée via la plateforme New Relic et NerdGraph pour les méthodes d'installation par copier-coller, par navigateur NPM et les applications injectées par l'APM.
Vous pouvez créer des règles d'obfuscation d'ingestion directement depuis la plateforme New Relic pour masquer les données sensibles avant qu'elles ne soient récoltées. Ces règles s'appliquent à tous les événements de navigateur. Les règles configurées via la plateforme New Relic ou NerdGraph s'appliquent aux applications injectées par l'APM, aux installations par copier-coller et aux installations NPM. Cependant, les installations par copier-coller et NPM peuvent remplacer manuellement les règles configurées par la plateforme New Relic en ajoutant la propriété obfuscate à leur configuration init.
Conseil
Première configuration: pour voir les paramètres des règles d'obfuscation dans la plateforme New Relic, vous devez d'abord activer la capture de charge AJAX. Une fois la capture de charge activée, la section des règles d'obfuscation s'affiche dans votre Application settings. Vous pouvez ensuite désactiver la capture de charge tout en conservant vos règles d'obfuscation personnalisées.
Sous Ingest obfuscation rules, cliquez sur Add a rule.
Dans le champ Original value, saisissez un modèle d’expression régulière correspondant aux données sensibles que vous souhaitez masquer.
Dans le champ Replace with, saisissez une valeur neutre ou de remplacement.
Dans la liste déroulante Choose where to store, sélectionnez les types d’attributs d’événement auxquels vous souhaitez appliquer la règle d’obfuscation.
Cliquez sur Add rule pour créer. La règle d'obfuscation est appliquée aux données correspondantes dans tous les événements du navigateur avant l'ingestion.
Vous pouvez configurer l’agent Browser pour obfusquer sélectivement les données dans chaque charge qu’il envoie. Cela est utile si votre application utilise des données sensibles à des endroits que l’agent capture, tels que les chemins de navigation, les messages d’erreur, et plus encore.
À partir de la version 1216 de l'agent de navigateur et des versions supérieures, la règle d'obfuscation peut être appliquée aux frais de récolte sortants.
Pour mettre en place ces règles, configurez la propriété suivante de l’agent Browser :
La propriété init.obfuscate contient un éventail de sélecteurs et de remplacements qui seront utilisés pour modifier chaque récolte avant l'envoi.
Vous devrez modifier manuellement votre section de configuration JavaScript et définir l'éventail obfuscate pour qu'il contienne vos conditions d'obfuscation.
Recommandations
Lors de la configuration de cette propriété, nous recommandons ce qui suit :
Utilisez des modèles d'expressions régulières intentionnels pour masquer uniquement ce qui doit être obfuscation.
Une obfuscation excessive peut avoir des effets secondaires tels qu'une moindre granularité lors du regroupement des données et une moindre capacité à digérer ce que l'agent a capturé.
Remplacez vos données sensibles par des termes neutres et génériques qui indiquent également quelles données ont été expurgées.
Exemple : /account-id/g --> ACCOUNT_ID
Installation par copier/coller
Si vous utilisez la méthode d'installation copier/coller, ajoutez la configuration suivante à la configuration JavaScript de votre navigateur avant le chargeur d'agent :
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>...
]
}
Installation de NPM
Si vous utilisez la méthode d'installation NPM pour le navigateur, ajoutez la configuration suivante lors de l'initialisation de l'agent 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>...
]
}
})
Exemples : limiter l'obfuscation à des types d'événements spécifiques
Par défaut, les règles d'obfuscation s'appliquent à tous les types d'événements capturés par l'agent Browser. Cependant, vous pouvez limiter les règles à des types d'événements spécifiques en utilisant la propriété d'éventail eventFilter.
Cela est particulièrement utile lors de la capture de charges AJAX, où vous pourriez vouloir obfusquer des données sensibles dans les corps de requête/réponse sans affecter d'autres événements.
Conseil
Si vous omettez la propriété eventFilter, la règle s'applique à tous les types d'événements, ce qui permet de maintenir la compatibilité avec les configurations existantes.
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
Lorsque vous activez la capture de charge AJAX, l’agent Browser inclut des règles d’obfuscation par défaut pour protéger les types courants de données sensibles. Ces règles sont créées uniquement la première fois que vous activez la capture de charge AJAX. Si vous désactivez et réactivez cette fonctionnalité, les règles par défaut ne seront pas recréées :
Conseil
Ces règles s'appliquent à toutes les applications pour lesquelles la capture de charge AJAX est activée. Vous pouvez personnaliser ou désactiver ces règles dans la plateforme New Relic ou en utilisant NerdGraph. Nous recommandons de laisser ces règles activées à moins que la configuration ne provoque des faux positifs dans votre cas d'utilisation spécifique, car la capture de charge offre une protection importante pour les types courants de données sensibles.
Deux modèles d'expressions régulières détectent et masquent les formats courants de cartes de crédit :
Les deux modèles remplacent les numéros de carte de crédit détectés par XXXX-XXXX-XXXX-XXXX.
Le modèle d'expression régulière suivant détecte et masque les numéros de sécurité sociale courants avec XXX-XX-XXXX:
{
regex:/\b\d{3}-?\d{2}-?\d{4}\b/g,
replacement:'XXX-XX-XXXX',
eventFilter:['AjaxRequest']
}
Obfuscation et identification de l’utilisateur
Si vous utilisez l'API newrelic.setUserId() pour identifier les utilisateurs, sachez que les règles d'obfuscation s'appliquent à toutes les données collectées par l'agent Browser, y compris l'attribut enduser.id défini par setUserId().
Cela peut créer des conflits si vous utilisez des adresses e-mail ou d’autres PII comme identifiants utilisateur tout en obfusquant ce même type de données dans les charges AJAX.
Exemple de scénario
Supposons que vous :
Utiliser les adresses e-mail comme identifiants d'utilisateur : newrelic.setUserId('user@example.com')
Configurer l’obfuscation pour masquer les adresses e-mail dans les corps de requête/réponse AJAX
Le problème: étant donné que les règles d’obfuscation s’appliquent à toutes les données d’événement (pas seulement à la charge AJAX), l’attribut enduser.id sera également obfusqué, apparaissant comme EMAIL_REDACTED au lieu de l’e-mail réel.
Solutions
L'approche recommandée est d'utiliser un identifiant non sensible pour setUserId(), tel que :
Si vous devez utiliser des adresses e-mail comme identifiants utilisateur, créez des règles d’obfuscation qui ciblent des chemins JSON ou des noms d’attribut spécifiques, plutôt que de faire correspondre des modèles d’e-mail de manière globale :
{
// More specific: only match emails in known sensitive fields
regex:/("customerEmail"\s*:\s*")[^"]+(@[^"]+")/g,
replacement:'$1EMAIL_REDACTED$2',
eventFilter:['AjaxRequest']
}
Cette approche nécessite des tests minutieux pour vous assurer que vous capturez toutes les données sensibles tout en évitant les faux positifs.
Prudence
Testez toujours vos règles d’obfuscation de manière approfondie dans un environnement de développement avant de déployer en production. Utilisez l’onglet réseau des outils pour développeurs du navigateur pour inspecter les charges réelles envoyées à New Relic.