Un utente malintenzionato potrebbe non dover accedere al tuo database per ottenere le password dei tuoi utenti.
In base alla progettazione, i dati memorizzati in un database sono separati dalle tabelle. Informazioni come nomi utente e password dovrebbero trovarsi in una tabella diversa dai dettagli dell'utente come nome e così via. Questa è la progettazione dello schema del database di base.
Se un utente malintenzionato compromette la tua applicazione utilizzando tecniche come le iniezioni SQL, potrebbe essere in grado di accedere solo alla tabella contenente le password.
Anche supponendo che l'attaccante riesca a ottenere l'accesso all'intero database, ci sono altri fattori da considerare. Le informazioni dell'utente non sono l'unica cosa importante nella tua applicazione. Se l'attaccante cambia direttamente le informazioni nel database, molto probabilmente le sue azioni verranno registrate. Ciò rende relativamente facile trovare e correggere eventuali modifiche indesiderate.
Tuttavia, se l'utente malintenzionato accede a un account utente tramite la pagina di accesso dell'applicazione, sarebbe difficile differenziare l'accesso previsto e non intenzionale. Potrebbe causare un sacco di danni potenziali.
Inoltre, molti utenti usano le stesse combinazioni nome utente / password su più siti. Se un utente malintenzionato compromette le informazioni dell'account sul tuo sito, potrebbe potenzialmente accedere a tutti gli altri account online dell'utente. Questo è male.
Elimina sempre le tue password.