Sto iniziando a scrivere la mia prima applicazione web seria e sto pensando a come memorizzare le informazioni su nome utente e password. Ci sono molti articoli che descrivono dettagliatamente come l'archiviazione delle password in testo semplice sia una pessima idea e che le password crittografate salate siano la soluzione giusta. Tuttavia, posso trovare molto poco sulla limitazione dell'accesso ai dati dell'utente stesso.
Sto pensando a una situazione in cui la mia app Web è compromessa e un utente malintenzionato può leggere qualsiasi informazione dal mio database. Anche se memorizzo i nomi utente con password crittografate, l'utente malintenzionato sarebbe in grado di rimuovere tutti i nomi utente dal database (ma almeno non otterrebbero le password). Tuttavia, potrei limitare l'accesso così anche la mia app non ha avuto accesso a questi dati. Stavo pensando di impedire al mio utente del database di visualizzare la tabella con nomi utente e password. È quindi possibile fornire l'accesso tramite una stored procedure che accetta nome utente e password, restituendo true se viene trovato un nome utente con la password o presentando una vista di nomi utente e password hash, quindi, anche se compromessi, i nomi utente reali non possono essere trovati .
Dato che sono nuovo a questo, e non ho trovato nessun articolo che consigli qualcosa di simile, suppongo che mi sia sfuggito qualcosa di semplice che rende insicure le idee di cui sopra.
Grazie.