15.9. Zapisywanie haseł użytkowników w bazie danych w postaci skrótów

Problem

W tabeli bazy danych zdefiniowanej w „15.8. Tworzenie systemu logowania” hasła użytkowników są zapisywane w postaci zwykłego tekstu. To z gruntu zły pomysł, bo jeżeli uda się komuś dostać do bazy danych, będzie miał dostęp do haseł wszystkich użytkowników. Najlepszym sposobem przechowywania haseł jest zapisanie ich w postaci bezpiecznego skrótu (hash). W ten sposób hasła nie są zapisywane de facto — zatem nikt nie może ich wykraść — natomiast można sprawdzić, czy logujący się użytkownik zna żądane hasło.

Rozwiązanie

Utwórzmy jeszcze raz tabelę users znaną z „15.8. Tworzenie systemu logowania”, w której zamiast pola password znajdzie się pole hashed_password ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.