Assainir les données (Web)
Assainir les données de rejeu
Section titled Assainir les données de rejeuVous pouvez assainir ce qu’OpenReplay capture à un niveau global et/ou granulaire. Toute donnée masquée ou ignorée ne sera pas capturée à la source. Autrement dit, ces données ne quitteront jamais le navigateur de l’utilisateur.
Video Tutorial
Découvrez comment assainir les données sensibles dans vos rejeux
Si vous n'aimez pas lire, vous pouvez suivre ce tutoriel vidéo qui vous montre comment assainir les données dans vos enregistrements.
Niveau global
Section titled Niveau globalLes données peuvent être assainies au niveau du tracker, lors de la configuration d’OpenReplay.
J’utilise OpenReplay Script
Section titled J’utilise OpenReplay Script
- Cliquez sur le Tracking Code de votre projet sous « Preferences > Projects ».
- Les options d’enregistrement des données devraient apparaître juste avant l’extrait de code :
- Inputs : Pour ignorer, masquer ou enregistrer toutes les valeurs saisies par vos utilisateurs.
- Do not record any numeric text : Pour ignorer les valeurs numériques contenues dans les éléments de texte.
- Do not record email addresses : Par défaut, toutes les adresses e-mail contenues dans les éléments de texte sont masquées et n’apparaîtront pas dans les rejeux. Vous pouvez désactiver cela en décochant la case.
- La modification des options d’enregistrement des données a un impact sur l’extrait de code. Assurez-vous de copier/coller le script mis à jour dans votre application web.
J’utilise OpenReplay NPM
Section titled J’utilise OpenReplay NPMIl existe un ensemble d’options liées à la confidentialité que vous pouvez passer au constructeur :
obscureTextEmails?: booleanMasque les e-mails dans les éléments de texte. Les e-mails seront convertis en une chaîne aléatoire d’astérisques. Par défaut : true.obscureTextNumbers?: booleanMasque les nombres dans les éléments de texte. Les nombres seront convertis en une chaîne aléatoire d’astérisques. Par défaut : false.obscureInputEmails?: booleanMasque les e-mails dans les champs de saisie. Les valeurs d’e-mail seront converties en une chaîne aléatoire d’astérisques. Par défaut : true.obscureInputNumbers?: booleanMasque les nombres dans les champs de saisie. Les valeurs numériques seront converties en une chaîne aléatoire d’astérisques. Par défaut : false.obscureInputDates?: booleanMasque les dates dans les champs de saisie. Les valeurs de date seront converties en une chaîne aléatoire d’astérisques. Par défaut : false.defaultInputMode?: 0 | 1 | 2Mode de capture par défaut pour les valeurs saisies. Respectivement : brut, masqué ou ignoré. Par défaut : 1 (masqué).
Le texte, les e-mails et les nombres assainis sont masqués ou supprimés avant l’envoi des données aux serveurs d’OpenReplay. Par conséquent, les modifications appliquées aux options ci-dessus ne peuvent pas être rétroactives et ne s’appliqueront qu’aux données nouvellement collectées.
Niveau granulaire
Section titled Niveau granulaireVous pouvez également assainir vos données au niveau du code pour une meilleure granularité. Cela est utile pour masquer ou ignorer des éléments du DOM et des champs de saisie.
Utiliser les attributs HTML
Section titled Utiliser les attributs HTMLdata-openreplay-obscuredpour masquer le contenu textuel des balises<input>,<img>et d’autres éléments HTML (par exemple<div>) à l’exception de<svg>et<canvas>.
<!--Obscuring input fields-->
<form action="/action_page.php">
Name: <input type="text" name="fname" data-openreplay-obscured><br>
<input type="submit" value="Submit">
</form>
<!--Obscuring a div element-->
<div style="background-color:lightblue" data-openreplay-obscured>
<h3>This is a sensitive information</h3>
<p>This is an important paragraph</p>
<img src="important_image.jpg">
</div>
data-openreplay-hiddenpour expurger le contenu des balises<input>,<img>,<svg>et d’autres éléments HTML (par exemple<div>) à l’exception de<canvas>. Le contenu de l’élément (y compris ses composants enfants) est supprimé, mais ses props et arguments sont conservés, comme dans cet exemple :
<div style="background-color:lightblue" data-openreplay-hidden>
<div>This is a sensitive information</div>
<svg>An important chart</svg>
</div>
Cela donnera le DOM suivant enregistré par le tracker :
<div style="background-color:lightblue" data-openreplay-hidden>
</div>
Utiliser la fonction domSanitizer
Section titled Utiliser la fonction domSanitizer- La fonction
domSanitizer: (node: Element) => SanitizeLevelévite d’avoir à instrumenter chaque composant HTML qui doit être assaini.SanitizeLevelpeut êtrePlain(0),Obscured(1) ouHidden(2). Cette fonction est passée au constructeur du tracker. Voici un exemple d’expurgation de tous les éléments HTML possédant un nom de classe CSS spécifique :
// Import SanitizeLevel enum
import Tracker, { SanitizeLevel } from "@openreplay/tracker";
const tracker = new Tracker({
projectKey: PROJECT_KEY,
domSanitizer: (node: Element) => {
const elementClassNames = node.classList
if (elementClassNames.contains('to_be_redacted_class')) {
return SanitizeLevel.Hidden
}
if (node.id === 'sensitiveData') {
return SanitizeLevel.Obscured
}
return SanitizeLevel.Plain
}
})
tracker.start()
Remarque : Tous les éléments assainis sont masqués/expurgés au niveau de la source (tracker) afin que les données sensibles n’atteignent jamais l’instance OpenReplay.
Assainir les données DevTools
Section titled Assainir les données DevToolsVous pouvez utiliser le SDK OpenReplay pour assainir les données réseau et l’état de l’application.
Réseau
Section titled RéseauLa capture des requêtes/réponses peut consigner des informations hautement sensibles ou privées que votre application pourrait envoyer/recevoir. Assurez-vous d’expurger correctement vos données réseau.
Fetch/XHR
Section titled Fetch/XHRUtilisez l’option sanitizer pour expurger les données sensibles des requêtes/réponses Fetch/XHR. Consultez les options réseau pour plus de détails.
Consultez également ce tutoriel étape par étape sur la façon de capturer et assainir les requêtes réseau.
GraphQL
Section titled GraphQLPour assainir les données GraphQL, vous devez cloner les variables clés et les résultats de l’opération avant d’appeler le tracker. Découvrez comment assainir les données enregistrées dans GraphQL pour plus de détails.
Gestion de l’état
Section titled Gestion de l’étatNettoyez les données sensibles de votre magasin d’état frontend à l’aide du SDK OpenReplay.
Redux
Section titled ReduxUtilisez les options actionFilter, actionTransformer et stateTransformer pour expurger les actions et sous-arbres sensibles de votre magasin. Consultez la documentation du plugin redux pour plus de détails.
Utilisez les options filter, transformer et mutationTransformer pour expurger les mutations et sous-arbres sensibles de votre magasin. Consultez la documentation du plugin vuex pour plus de détails.
Zustand
Section titled ZustandUtilisez les options filter, transformer et mutationTransformer pour expurger les mutations et sous-arbres sensibles de votre magasin. Consultez la documentation du plugin zustand pour plus de détails.
Pinia
Section titled PiniaUtilisez les options filter, transformer et mutationTransformer pour expurger les mutations et sous-arbres sensibles de votre magasin. Consultez la documentation du plugin pinia pour plus de détails.
Utilisez les options actionFilter, actionTransformer et stateTransformer pour expurger les actions et sous-arbres sensibles de votre magasin. Consultez la documentation du plugin ngrx pour plus de détails.
Vous avez des questions ?
Section titled Vous avez des questions ?Nous améliorons constamment nos fonctionnalités liées à la confidentialité, alors faites-nous savoir si vous avez besoin de quelque chose que nous ne prenons pas encore en charge. Si vous rencontrez des difficultés pour assainir vos données, contactez-nous sur notre Slack ou consultez notre Forum et obtenez de l’aide auprès de notre communauté.