Nuovo per la sicurezza, php password_hash () è abbastanza buono?

9

Questa è la prima volta che ho dovuto gestire le informazioni personali e voglio assicurarmi di avere una buona dose di sicurezza. Conserverò le e-mail e le password degli utenti per i loro account su una tabella MySQL, quindi mi chiedevo se la funzione password_hash () fosse sufficiente per l'hashing.

Ad esempio, questa sarebbe una quantità accettabile di sicurezza per l'archiviazione delle password?:

$password = password_hash($password, PASSWORD_BCRYPT);

Vorrei quindi confrontare le password con hash quando un utente prova ad accedere per verificare. Anche perché non ho bisogno delle e-mail a scopo di contatto, potrebbero anche essere sottoposte a hash.

    
posta user38230 30.01.2014 - 22:55
fonte

1 risposta

9

Usare bcrypt è un buon inizio; questa è la scelta raccomandata (o almeno una delle scelte raccomandate). La documentazione sembra indicare che PHP finalmente fa le cose correttamente . Assicurati che la tua versione di PHP sia almeno 5.5.0. Non provare a giocare con i sali: per impostazione predefinita, la funzione genererà un sale casuale quando necessario, e questo è il modo giusto per farlo, quindi lascia che faccia il suo lavoro.

Dovresti provare a modificare anche l'opzione "costo". Per bcrypt, il costo è un valore compreso tra 4 e 31; ogni incremento indica che l'hashing della password è due volte più costoso, sia per il server che per l'utente malintenzionato. In pratica, vuoi rendere quel valore il più alto possibile, data la potenza del tuo server, il carico medio, il carico massimo e la massima pazienza dell'utente: questo ti darà la migliore sicurezza che puoi sperare.

(nota che ho detto "il migliore", non "buono".)

Se vuoi capire i concetti sottostanti per una buona hashing della password, e perché bcrypt è una buona scelta, inizia qui .

    
risposta data 30.01.2014 - 23:20
fonte

Leggi altre domande sui tag