(BTW, questo è tutto codificato in PHP come sono sicuro che sarai in grado di dire dalla funzione in basso)
Quando si salvano le password, sono a conoscenza del fatto che è necessario eseguire l'hash delle password, infatti qui è il mio codice (dimmi se è abbastanza sicuro):
function hash($password)
{
return password_hash($password, PASSWORD_BCRYPT, array(
'cost' => 12,
'salt' => bin2hex(openssl_random_pseudo_bytes(16))
));
}
Tuttavia, la mia vera domanda è se sto usando un sistema di login appropriato o no. Nel prossimo paragrafo spiegherò come funziona il mio attuale sistema e qualcuno può dirmi se va bene o se deve essere cambiato. Ho sentito che il modo corretto che si suppone di fare è con un token che il client salva nei cookie o qualcosa del genere.
Quando l'utente arriva per la prima volta sul sito e il suo account è registrato, viene richiesto di accedere. Con la password che hanno fornito, l'ho cancellato e controllato se corrisponde, con password_verify (), la password nel database. Una volta convalidati hanno le informazioni di accesso corrette e posso andare avanti e autorizzarle ho impostato $ _SESSION il nome utente e la password (che capisco è memorizzato sul lato server), e se hanno spuntato il pulsante remember me salvi lo username e la password (non modificata) nei cookie scadrà tra 1 settimana.
Ogni volta che tentano di fare una nuova azione, ad esempio caricare una pagina come le informazioni dell'account, esegue una funzione nella parte superiore del codice che restituisce se sono autenticati o meno, per verificare se sono autentificati o no, controlla $ _SESSION per il nome utente e la password e li autentica di nuovo. Se hanno spuntato ricordati di me e il $ _SESSION è scaduto, prende il nome utente e la password da lì.
La mia preoccupazione è che sono sicuro che la maggior parte dei siti Web utilizza un sistema token, in modo che quando si effettua il login salvi un token nei cookie e poi, invece di accedere ogni volta, utilizzi il token. E anche sui forum, ad esempio, puoi controllare chi è online mentre con il mio, non puoi.
Qualcuno può rispondere se ciò che ho fatto è corretto, o deve essere cambiato, o non è il massimo, ma tecnicamente è sicuro. La parte della sessione che sono abbastanza sicuro è sicura, e ancora più sicura di alcuni video che ho visto, alcuni dicono che è possibile memorizzare l'ID dell'utente nella sessione, il che significa che se cambiano la password sono ancora loggati. Ma la parte dei biscotti, mi fa incazzare con i biscotti che rubano le paure salvandoli nei loro biscotti.