Sto per scrivere le linee guida dell'azienda su ciò che non deve mai apparire nei registri (traccia di un'applicazione). In effetti, alcuni sviluppatori cercano di includere quante più informazioni possibili nella traccia, rendendo rischioso archiviare quei registri ed estremamente pericoloso inviarli , soprattutto quando il cliente non sa che queste informazioni sono memorizzate, perché non le è mai importato e non leggere mai documentazione e / o messaggi di avviso.
Ad esempio, quando si tratta di file, alcuni sviluppatori sono tentati di tracciare i nomi dei file . Ad esempio, prima di aggiungere il nome del file a una directory, se tracciamo tutto in errore, sarà facile notare ad esempio che il nome aggiunto è troppo lungo e che il bug nel codice era dimenticare di verificare la lunghezza del stringa concatenata. È utile, ma si tratta di dati sensibili e non deve mai apparire nei registri .
Nello stesso modo:
- Password ,
- Indirizzi IP e informazioni di rete (indirizzo MAC, nome host, ecc.) ¹,
- Accessi al database,
- Input diretto da parte dell'utente e dati aziendali memorizzati
non deve mai apparire in traccia.
Quindi quali altri tipi di informazioni devono essere banditi dai registri? Ci sono già delle linee guida già scritte che posso usare?
¹ Ovviamente, non sto parlando di cose come IIS o registri Apache. Quello di cui sto parlando è il tipo di informazioni che vengono raccolte con l'unico intento di eseguire il debug dell'applicazione stessa, non di tracciare l'attività di entità non attendibili.
Modifica: grazie per le risposte e i commenti. Poiché la mia domanda non è troppo precisa, proverò a rispondere alle domande poste nei commenti:
- Cosa sto facendo con i registri?
I registri dell'applicazione possono essere archiviati in memoria, il che significa sia in chiaro sul disco rigido su localhost, in un database, di nuovo in chiaro, o in Eventi di Windows. In ogni caso, la preoccupazione è che tali fonti potrebbero non essere abbastanza sicure. Ad esempio, quando un cliente esegue un'applicazione e questa applicazione memorizza i registri in un file di testo semplice nella directory temporanea, chiunque abbia un accesso fisico al PC può leggere quei registri.
I registri dell'applicazione possono anche essere inviati tramite Internet. Ad esempio, se un cliente ha un problema con un'applicazione, possiamo chiederle di eseguire questa applicazione in modalità traccia completa e di inviarci il file di registro. Inoltre, alcune applicazioni potrebbero inviarci automaticamente il rapporto sugli arresti anomali (e anche se ci sono avvisi sui dati sensibili, nella maggior parte dei casi i clienti non li leggono).
- Sto parlando di campi specifici?
No. Sto lavorando solo su applicazioni aziendali generali, quindi i soli dati sensibili sono i dati aziendali. Non vi è nulla di correlato alla salute o ad altri settori coperti da normative specifiche. Ma grazie per parlarne, probabilmente dovrei dare un'occhiata a quei campi per alcuni indizi su cosa posso includere nelle linee guida.
- Non è più facile crittografare i dati?
No. Renderebbe ogni applicazione molto più difficile, specialmente se vogliamo usare la diagnostica C # e TraceSource
. Richiederebbe anche la gestione delle autorizzazioni, che non è la cosa più semplice da pensare. Infine, se stiamo parlando dei registri che ci vengono inviati da un cliente, dobbiamo essere in grado di leggere i registri, ma senza avere accesso ai dati sensibili. Quindi tecnicamente, è più facile non includere mai informazioni sensibili nei registri e non preoccuparsi di come e dove sono archiviati quei registri.
debug
un nome file, ma noninfo
un nome file.