"Stiamo registrando ogni richiesta e risposta http con log4Net."
Anche se sono sicuro che questo sia molto utile per gli sviluppatori, è una pessima pratica ed è potenzialmente illegale.
Come hai sottolineato, probabilmente stai risparmiando informazioni sulla carta di credito in un modo non conforme a pci.
Probabilmente stai elaborando anche "informazioni personali" come nomi e indirizzi ecc. in modi che il proprietario non ti ha autorizzato a farlo. Rompere la legge sulla protezione dei dati o legge equivalente nel tuo paese.
Potresti anche salvare i nomi utente e le password degli utenti in testo non crittografato
La soluzione è semplice da dire ma difficile da implementare. Devi interrompere la registrazione di ogni richiesta / risposta e iniziare a controllare il messaggio esatto che viene scritto nei tuoi registri.
Eg.
Invece di
Log.Write("Error processing request" + request.ToString());
Hai catturato l'errore esatto e scrivi
...
DoStuff(publicA,secret1,secret2)
}
catch(Exception ex)
{
Log.Write("Error doing stuff with id : " + publicA);
}
Dove sai publicA è un riferimento db interno o un identificatore senza significato per un hacker e può provarlo al tuo auditor di sicurezza.
Per chiarire: Né nascondere i registri, avere una lista nera di parametri o usare una regex per individuare e rimuovere dati segreti ti aiuta davvero. Poiché non puoi essere sicuro di aver catturato ogni caso.