Les règles d’obfuscation vous permettent de masquer les données sensibles avant que l’agent ne les transmette à New Relic. Chaque règle est un modèle regex associé à une chaîne de remplacement. L’agent applique les règles dans l’ordre à chaque valeur d’attribut de chaîne dans chaque événement sortant — y compris les événements QoE et les événements récupérés après un plantage.
Configuration
Objective-C
NRVAVideoConfiguration *config = [[[[NRVAVideoConfiguration builder] withApplicationToken:@"YOUR_NEW_RELIC_TOKEN"] withObfuscationRules:@[ @{ @"regex": @"account-\\d+", @"replacement": @"ACCOUNT_ID" }, @{ @"regex": @"token=[^&\"]+", @"replacement": @"token=REDACTED" }, ]] build];[[[NRVAVideo newBuilder] withConfiguration:config] build];Swift
let config = NRVAVideoConfiguration.builder() .withApplicationToken("YOUR_NEW_RELIC_TOKEN") .withObfuscationRules([ ["regex": "account-\\d+", "replacement": "ACCOUNT_ID"], ["regex": "token=[^&\"]+", "replacement": "token=REDACTED"], ]) .build()NRVAVideo.newBuilder().with(configuration: config).build()Comment ça marche
- L’agent applique les règles par valeur d’attribut de chaîne, et non à la charge JSON brute — les attributs numériques et booléens ne sont pas affectés.
- Toutes les règles s’exécutent sur chaque événement sortant, y compris les événements réguliers, en direct, QoE et récupérés après un crash.
- Les règles s’exécutent dans l’ordre dans lequel vous les déclarez. Si deux règles peuvent correspondre à la même valeur, l’ordre a de l’importance.
- L'agent n'obfusque jamais le
applicationTokenou les en-têtes d'authentification HTTP — l'obfuscation ne s'applique qu'aux valeurs d'attribut d'événement.
Cas limites
| Scénario | Comportement |
|---|---|
| Aucune règle configurée | L’agent transmet toutes les valeurs d’attribut sans modification et sans impact sur les performances. |
| Chaîne de remplacement vide | L’agent supprime le contenu correspondant de la valeur. |
| Motif regex invalide | withObfuscationRules: renvoie NSInvalidArgumentException au moment de la configuration, avant que des événements ne soient envoyés. |
| Valeur d'attribut non-chaîne | L’agent ignore l’attribut. Seules les valeurs de chaîne sont traitées. |
| Entrée d’éventail de règles mal formée | L’agent ignore toute entrée qui n’est pas un dictionnaire et écrit un avertissement dans le log. |
applicationToken et les en-têtes d’authentification HTTP | Ceux-ci ne sont jamais inclus dans les attributs d’événement et ne sont pas affectés par les règles d’obfuscation. |
| Ordre des règles | Les règles s’exécutent dans l’ordre où elles sont déclarées dans l’éventail. |
| Retour sur trace catastrophique | NSRegularExpression n’a pas de délai d’attente intégré sur iOS. Évitez les modèles avec des quantificateurs imbriqués non bornés (par exemple, (a+)+). Testez les règles avec les pires entrées avant de déployer. |