Nella progettazione di un database di back-end, supponiamo che il campo della password sia sottoposto a hash con bcrypt.
Ci sono due approcci
- solo backend: password = bcrypt (plain_passsword)
- frontend + backend = password = bcrypt (sha1 (plain_password)), dove sha1 (plain_password) viene calcolata dal lato client, ad es. JavaScript
Il vantaggio del secondo approccio è che non è stata inviata alcuna password semplice sul cavo, quindi anche l'HTTPS è rotto, non c'è alcun rischio immediato per la sicurezza dei nostri utenti che hanno perso la loro password semplice.
Modifica: la mia domanda è diversa dalle domande esistenti perché enfatizzano il frontend vs backend, ma la mia domanda è backend vs frontend + backend