Se abbiamo una lista di dati a video che contiene dei dati sensibili che vanno visualizzati a seconda del ruolo utente che li guarda possiamo nascondere il campo che li contiene mettendo un bel visible = false nell’evento onRowComposition della datamap che carica i dati e il gioco è fatto.
Questo però non ci protegge dai furbetti che aprono gli strumenti di sviluppo del browser e vanno a sbirciare i nostri dati che hanno style="display: none; ma che sono comunque presenti.
Il trucco per proteggere i nostri dati sensibili consiste nell’impostare la proprietà innerText del campo che li visualizza con degli asterischi in modo che il testo sia sostituito con “*****”. Questo lo faremo sempre nell’evento OnRowComposition della datamap di caricamento dei dati.
Per facilitarvi la vita ho predisposto il progetto pubblico nascondere-dati-sensibili nella Console di Instant Developer Cloud.
Per gestire la cosa nell’esempio ho aggiunto alla datamap DatiSensibiliDM il campo unbound hiddenDatoSensibile di tipo boolean con defaukt value false. poi nell’evento onRowComposition:
$textDatoSensibile.visible = !row.hiddenDatoSensibile;
// Se nascondo il campo cambio il testo con ***** in modo che non si veda nemmeno dagli strumenti di sviluppo
if (row.hiddenDatoSensibile) {
$textDatoSensibile.innerText = "*****";
}
Nella videata è presente il bottone btnNascondiVisualizza che al click ha questo codice:
// Nascondo il dato sensibile
if ($btnNascondiVisualizza.icon === "flash-off") {
$btnNascondiVisualizza.icon = "flash";
$btnNascondiVisualizza.label = "Visualizza";
view.setDatoSensibile(true);
}
else {
// Visualizzo il dato sensibile
$btnNascondiVisualizza.icon = "flash-off";
$btnNascondiVisualizza.label = "Nascondi";
view.setDatoSensibile(false);
}
Questo il codice del metodo setDatoSensibile:
App.Home.prototype.setDatoSensibile = function(nascondi)
{
for (let i = 0; i < $DatiSensibiliDM.rows.length; i++) {
$DatiSensibiliDM.rows[i].hiddenDatoSensibile = nascondi;
}
};
Quando nascondo i dati sensibili negli strumenti di sviluppo i dati nascosti sono così:
Spero vi possa essere utile.
