Sanificare i dati (Web)
Sanificare i dati delle replay
Section titled Sanificare i dati delle replayPuoi sanificare ciò che OpenReplay cattura sia a livello globale sia a livello granulare (o a entrambi). I dati oscurati o ignorati non vengono catturati alla fonte. In altre parole, quei dati non lasciano mai il browser dell’utente.
Video Tutorial
Guarda come sanificare i dati sensibili nelle tue replay
Se non ti piace leggere, puoi seguire questo video tutorial che mostra come sanificare i dati nelle tue registrazioni.
Livello globale
Section titled Livello globaleI dati possono essere sanificati a livello di tracker, quando configuri OpenReplay.
Uso lo script di OpenReplay
Section titled Uso lo script di OpenReplay
- Fai clic su Tracking Code del tuo progetto in ‘Preferences > Projects’.
- Le opzioni di registrazione dei dati dovrebbero comparire subito prima dello snippet di codice:
- Inputs: Per ignorare, oscurare o registrare tutti i valori di input dei tuoi utenti.
- Do not record any numeric text: Per ignorare i valori numerici contenuti negli elementi di testo.
- Do not record email addresses: Per impostazione predefinita, tutte le email contenute negli elementi di testo vengono oscurate e non compaiono nelle replay. Puoi disattivare questo comportamento deselezionando la casella.
- La modifica delle opzioni di registrazione dei dati cambia lo snippet di codice. Assicurati di copiare e incollare lo script aggiornato nella tua web app.
Uso OpenReplay con NPM
Section titled Uso OpenReplay con NPMEsistono diverse opzioni relative alla privacy che puoi passare al costruttore:
obscureTextEmails?: booleanOscura le email negli elementi di testo. Le email verranno convertite in una sequenza casuale di asterischi. Predefinito: true.obscureTextNumbers?: booleanOscura i numeri negli elementi di testo. I numeri verranno convertiti in una sequenza casuale di asterischi. Predefinito: false.obscureInputEmails?: booleanOscura le email nei campi di input. I valori delle email verranno convertiti in una sequenza casuale di asterischi. Predefinito: true.obscureInputNumbers?: booleanOscura i numeri nei campi di input. I valori numerici verranno convertiti in una sequenza casuale di asterischi. Predefinito: false.obscureInputDates?: booleanOscura le date nei campi di input. I valori delle date verranno convertiti in una sequenza casuale di asterischi. Predefinito: false.defaultInputMode?: 0 | 1 | 2Modalità di acquisizione predefinita per i valori di input. Rispettivamente: in chiaro, oscurato o ignorato. Predefinito: 1 (oscurato).
Il testo, le email e i numeri sanificati vengono oscurati o soppressi prima di inviare i dati ai server di OpenReplay. Di conseguenza, le modifiche applicate alle opzioni qui sopra non sono retroattive e si applicano solo ai dati raccolti da quel momento in poi.
Livello granulare
Section titled Livello granularePuoi anche sanificare i dati a livello di codice per una maggiore granularità. È utile per oscurare o ignorare elementi del DOM e campi di input.
Uso degli attributi HTML
Section titled Uso degli attributi HTMLdata-openreplay-obscuredper mascherare il contenuto testuale dei tag<input>,<img>e di altri elementi HTML (ad es.<div>), con l’eccezione di<svg>e<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-hiddenper oscurare completamente il contenuto dei tag<input>,<img>,<svg>e di altri elementi HTML (ad es.<div>), con l’eccezione di<canvas>. Il contenuto dell’elemento (inclusi i suoi componenti figli) viene rimosso, ma le sue props e i suoi argomenti vengono mantenuti, come in questo esempio:
<div style="background-color:lightblue" data-openreplay-hidden>
<div>This is a sensitive information</div>
<svg>An important chart</svg>
</div>
Il risultato è che il tracker registra il seguente DOM:
<div style="background-color:lightblue" data-openreplay-hidden>
</div>
Uso della funzione domSanitizer
Section titled Uso della funzione domSanitizer- La funzione
domSanitizer: (node: Element) => SanitizeLevelevita di dover strumentare ogni componente HTML che deve essere sanificato.SanitizeLevelpuò esserePlain(0),Obscured(1) oHidden(2). Questa funzione viene passata al costruttore del tracker. Di seguito un esempio di oscuramento di tutti gli elementi HTML che hanno uno specifico nome di classe CSS:
// 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()
Nota: tutti gli elementi sanificati vengono mascherati/oscurati alla fonte (nel tracker), in modo che i dati sensibili non raggiungano mai l’istanza di OpenReplay.
Sanificare i dati degli strumenti di sviluppo
Section titled Sanificare i dati degli strumenti di sviluppoPuoi usare l’SDK di OpenReplay per sanificare i dati di rete e lo stato dell’applicazione.
La cattura di richieste/risposte può registrare informazioni altamente sensibili o private che la tua applicazione può inviare/ricevere. Assicurati di oscurare correttamente i dati di rete.
Fetch/XHR
Section titled Fetch/XHRUsa l’opzione sanitizer per oscurare i dati sensibili delle richieste/risposte Fetch/XHR. Consulta le opzioni di rete per maggiori dettagli.
Dai un’occhiata anche a questo tutorial passo passo su come catturare e sanificare le richieste di rete.
GraphQL
Section titled GraphQLPer sanificare i dati GraphQL, devi clonare le variabili chiave e i risultati dell’operazione prima di chiamare il tracker. Consulta come sanificare i dati registrati in GraphQL per maggiori dettagli.
Gestione dello stato
Section titled Gestione dello statoRimuovi i dati sensibili dallo store dello stato del tuo frontend usando l’SDK di OpenReplay.
Redux
Section titled ReduxUsa le opzioni actionFilter, actionTransformer e stateTransformer per oscurare azioni e sotto-alberi sensibili del tuo store. Consulta la documentazione del plugin redux per maggiori dettagli.
Usa le opzioni filter, transformer e mutationTransformer per oscurare mutazioni e sotto-alberi sensibili del tuo store. Consulta la documentazione del plugin vuex per maggiori dettagli.
Zustand
Section titled ZustandUsa le opzioni filter, transformer e mutationTransformer per oscurare mutazioni e sotto-alberi sensibili del tuo store. Consulta la documentazione del plugin zustand per maggiori dettagli.
Pinia
Section titled PiniaUsa le opzioni filter, transformer e mutationTransformer per oscurare mutazioni e sotto-alberi sensibili del tuo store. Consulta la documentazione del plugin pinia per maggiori dettagli.
Usa le opzioni actionFilter, actionTransformer e stateTransformer per oscurare azioni e sotto-alberi sensibili del tuo store. Consulta la documentazione del plugin ngrx per maggiori dettagli.
Hai domande?
Section titled Hai domande?Miglioriamo costantemente le nostre funzionalità legate alla privacy, quindi faccelo sapere se ti serve qualcosa che non supportiamo ancora. Se hai difficoltà a sanificare i dati, scrivici sul nostro Slack e chiedi aiuto alla nostra community.