Per sicurezza, l'accesso alla mia app corrente non memorizza i parametri passati ai metodi di login o di ripristino della password. La chiamata registro ha un parametro facoltativo che controlla questo, che, se impostato su true, sostituisce l'oggetto parametri memorizzati con [Redacted]
. Certo, quindi mi manca un po 'di dati, ma ho i loro indirizzi IP, e preferirei non rischiare di ottenere qualcosa di così sensibile in testo semplice.
Se vuoi davvero registrare questo tipo di cose, ti suggerirei di effettuare il login di un tentativo, controllare il database per gli utenti con un nome corrispondente a quello che hai nel campo del nome utente, e memorizzarlo solo se hai una partita. Altrimenti, lo memorizzi come "utente sconosciuto". Potresti essere fantasioso, controllando se questo valore contiene questo o quel che sia, ma c'è sempre il rischio che tu riceva combinazioni come [Utente] [Password] e [UserPas] [spada], nel qual caso puoi controllare l'IP e dedurlo hai inavvertitamente memorizzato l'inizio della password di qualcuno in chiaro. È possibile estenderlo all'improbabile, ma possibile [Utente] [Password] e [UserPassword] [??], nel qual caso è possibile visualizzare "login non riuscito da UserPassword" seguito da "Login riuscito per utente" e dedurre tutti della password dell'utente. In generale, per sicurezza, direi di non registrare i nomi utente a meno che l'accesso non abbia esito positivo.
Modifica da aggiungere:
La maggior parte degli argomenti che gli utenti pubblicano per registrare il nome utente per tentativi di accesso non riusciti sono, a mio parere, gestiti meglio attraverso altri metodi.
Ad esempio, è stato detto che quando un cliente chiede "Perché non riesco ad accedere?", i nomi utente registrati ti consentono di indicare errori di battitura. Questo è vero, ma non vale la pena rischiare di catturare anche le password; Lo farei reindirizzando l'utente al modulo di accesso in caso di errore, evidenziando il campo del nome utente e riproponendolo con tutto ciò che hanno digitato in modo che possano vedere da soli.
Un altro argomento era che ti consente di identificare i tentativi di hacking; una serie di errori contro un nome utente potrebbe essere un tentativo di forzare una password. Lo farei avendo una colonna "BadLogins" nella tabella Users, che viene incrementata ogni volta che un login fallisce con un nome utente che corrisponde a questo utente, e viene ripristinato a zero su un login di successo, dopo aver detto all'utente "ci sono stati x tentativi di accesso non riusciti dal tuo ultimo accesso "e consigliandoli su cosa fare se non pensano che i tentativi siano stati da loro. Se vuoi essere veramente approfondito, potresti avere un'altra colonna che memorizza l'ultimo valore della colonna BadLogins anche dopo il login riuscito e / o una colonna che memorizza il valore più alto di questa colonna, e / o una colonna che memorizza il numero totale di accessi non riusciti che questo account ha mai avuto.