Attualmente sto sviluppando una piattaforma con un framework PHP per il nostro cliente.
Il responsabile del reparto IT del cliente ci chiede di gestire l'autenticazione con un campo di database contenente email + password + salt (hash), quindi non c'è un campo di posta elettronica in questa tabella e la password è più sicura (il suo ragionamento ). L'utente dovrebbe essere in grado di accedere con il suo indirizzo email e la sua password. Quindi l'indirizzo email funge da nome utente. L'idea alla base di questo è che gli indirizzi email degli utenti sono molto importanti per il business del nostro cliente e il responsabile IT vuole oscurare l'indirizzo email nella tabella di login in caso di un possibile attacco. (ad esempio, un hacker ottiene l'accesso alla tabella di accesso)
Questo è ovviamente possibile solo perché l'indirizzo email con hash per l'accesso è collegato al suo indirizzo email nella tabella del profilo. Fondamentalmente ci sono due tabelle che sono necessarie per il funzionamento di questo processo. Le tabelle sono nello stesso database, ovviamente. Una tabella di login con il campo della combinazione hash (email, pw, salt) e una tabella profilo che contiene tra l'altro l'e-mail in testo in chiaro in un campo. Chiamiamolo profile_email.
Ho caldamente raccomandato di non utilizzare questa soluzione, perché non ne ho mai sentito parlare e ho già identificato alcuni possibili problemi con questa soluzione.
Quindi le mie domande sono: è una soluzione sicura e fattibile? Riesci a pensare a problemi imprevedibili? Hai sentito parlare di soluzioni simili?