Mysql
 sql >> Database >  >> RDS >> Mysql

Perché non utilizzare gli utenti e le autorizzazioni MySQL integrati per un sito Web?

Gli utenti MySQL sono per gli utenti del server MySQL stesso. Questi utenti devono essere riservati all'uso solo dall'amministratore del server o dalle applicazioni che richiedono l'esecuzione di un utente (assegnare un utente separato a ciascuna applicazione). Il sistema di gestione degli utenti MySQL è stato creato appositamente per consentire l'accesso controllato al database in esecuzione sul server, NON per essere la base dell'autenticazione dell'utente in un'applicazione web. Inoltre, qualsiasi aggiunta al database (e creazione dell'utente) richiederà che un utente esegua l'applicazione con tali autorizzazioni sul database. Sebbene di per sé non sia una vulnerabilità diretta, se ne viene rilevata una nel tuo sistema PHP, potrebbe peggiorarti la vita.

Non vuoi mai che la tua applicazione sia in grado di inquinare lo spazio dei nomi del tuo database MySQL con database o (tabelle per quella materia) aggiuntivi. Durante il funzionamento della tua applicazione, dovrebbe essere in grado di creare, recuperare, aggiornare ed eliminare record solo utilizzando Principio del privilegio minimo , il che significa che darai all'utente del tuo database l'accesso per fare solo le cose necessarie e nient'altro.

Per quanto riguarda l'hashing delle password, utilizzare bcrypt tramite la funzione crypt() di PHP . Memorizzalo nel database all'interno di una tabella utenti.