Stavo pensando alle recenti violazioni della sicurezza (apparentemente settimanali) che abbiamo visto dove sono stati trapelati milioni di hash delle password e mi chiedevo come si potrebbe proteggere il loro sito contro un dump della password, anche se un hacker ha trovato un'iniezione SQL vulnerabilità.
Cosa succede se l'utente che il sito Web utilizzava per accedere al database disponeva di autorizzazioni più limitate. Diciamo che su tutti i dati non critici l'utente ha le autorizzazioni complete come normale (CRUD). Ma cosa succede se l'utente è stato negato tutte le operazioni CRUD alla tabella che memorizzava gli hash di login, le domande di sicurezza, ecc. E poteva eseguire solo stored procedure su quella tabella. E diciamo che quelle stored procedure non hanno mai restituito gli hash delle password al livello dell'applicazione, ma piuttosto passeresti l'hash alla procedura e la procedura restituirebbe un valore booleano che indica se c'era una corrispondenza.
Mi sembra che questa configurazione eliminerebbe completamente la possibilità di un dump di hash della password tramite SQL injection. Questa configurazione fornisce ulteriore sicurezza, è consigliabile?
Aggiorna
Vedi questa domanda per maggiori dettagli: