Bezpieczne przechowywanie haseł
Założenie: Nauczymy się podstawowych zasad bezpiecznego przechowywania haseł w aplikacjach PHP.
Krok po kroku:
- Hashowanie haseł: Nigdy nie przechowuj haseł w postaci jawnej. Zawsze używaj funkcji hashujących, takich jak
password_hash()
. Ta funkcja generuje bezpieczne hashe, odporne na ataki słownikowe i rainbow tables. - Weryfikacja hasła: Do weryfikacji hasła użyj funkcji
password_verify()
. Porównuje ona podane hasło z zapisanym hashem, bez konieczności odszyfrowywania hasha. - Sól (salt): Funkcja
password_hash()
automatycznie dodaje sól do hasha. Sól to losowy ciąg znaków, który jest unikalny dla każdego hasła. Dzięki soli, nawet jeśli dwa hasła są takie same, ich hashe będą różne. - Koszt (cost): Parametr
PASSWORD_DEFAULT
w funkcjipassword_hash()
automatycznie dobiera optymalny koszt. Koszt określa, ile czasu zajmie obliczenie hasha. Wyższy koszt zwiększa bezpieczeństwo, ale spowalnia proces hashowania. - Bezpieczeństwo bazy danych: Zabezpiecz bazę danych przed nieautoryzowanym dostępem. Używaj silnych haseł do bazy danych i stosuj odpowiednie uprawnienia.
$password = 'MojeHaslo123';
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
echo $hashedPassword;
Ten kod hashuje hasło ‘MojeHaslo123’ używając domyślnego algorytmu. Wynikowy ciąg znaków jest unikalny i nieodwracalny.
$password = 'MojeHaslo123';
if (password_verify($password, $hashedPassword)) {
echo "Hasło poprawne!";
} else {
echo "Hasło niepoprawne!";
}
Ten kod sprawdza, czy podane hasło odpowiada wcześniej wygenerowanemu hashowi.
Ten przykład pokazuje podstawowe techniki bezpiecznego przechowywania haseł w PHP. Pamiętaj, że bezpieczeństwo to proces ciągłego ulepszania i aktualizacji. Zachęcamy do dalszego zgłębiania tematu i zapoznania się z bardziej zaawansowanymi technikami.