Nou la securitate, este php password_hash() suficient de bun? (Securitatea informațiilor, Parole, Hash, Php)

user38230 a intrebat.

Aceasta este prima dată când a trebuit să mă ocup de informații despre personal și vreau să mă asigur că am o cantitate bună de securitate. Voi stoca emailurile utilizatorilor și parolele pentru conturile lor într-un tabel MySQL, așa că mă întrebam dacă funcția password_hash() este suficientă pentru hashing.

De exemplu, ar fi aceasta o cantitate acceptabilă de securitate pentru stocarea parolelor?:

$password = password_hash($password, PASSWORD_BCRYPT);

Aș compara apoi parolele hașurate atunci când un utilizator încearcă să se conecteze pentru a verifica. De asemenea, pentru că nu am nevoie de e-mailuri în scopul contactării, acestea ar putea fi de asemenea hașurate.

1 răspunsuri
Tom Leek

Folosirea bcrypt este un bun început; aceasta este alegerea recomandată (sau cel puțin una dintre alegerile recomandate). Site-ul documentația pare să indice că PHP în cele din urmă face lucrurile cum trebuie. Asigurați-vă că versiunea PHP este cel puțin 5.5.0. Nu încercați să vă jucați cu sărurile: în mod implicit, funcția va genera o sare aleatorie atunci când este necesar, iar acesta este modul corect de a face acest lucru, așa că lăsați-o să-și facă treaba.

Ar trebui să încercați să modificați, de asemenea, opțiunea „cost”. Pentru bcrypt, costul este o valoare cuprinsă între 4 și 31; fiecare creștere înseamnă că hashing-ul parolei este de două ori mai scump, atât pentru serverul dvs. cât și pentru atacator. În practică, doriți ca această valoare să fie cât mai mare posibil, având în vedere puterea serverului dumneavoastră, sarcina medie, sarcina maximă și răbdarea maximă a utilizatorului: astfel veți obține cea mai bună securitate la care puteți spera.

(Rețineți că am spus „cea mai bună”, nu „bună”).

Dacă doriți să înțelegeți conceptele care stau la baza unei bune hashing de parole și de ce bcrypt este o alegere bună, începeți de aici.

Comentarii

Tags:, ,