Uwierzytelnianie (authentication) to proces sprawdzania, czy użytkownik jest tym, za kogo się podaje. Odpowiada na pytanie „kim jesteś?” i zwykle opiera się na czymś, co użytkownik wie (hasło), ma (telefon, klucz sprzętowy) lub czym jest (odcisk palca, twarz).
Metody uwierzytelniania
Najpopularniejsze jest hasło, ale coraz częściej łączy się je z drugim składnikiem, takim jak kod z aplikacji (TOTP), lub zastępuje kluczami dostępu (passkeys). Użytkownicy logują się też przez zewnętrznych dostawców tożsamości, np. z użyciem protokołów OAuth i OpenID Connect.
Jak wdrożyć bezpiecznie?
Hasła przechowuj wyłącznie jako skróty z solą, np. za pomocą password_hash w PHP. Ogranicz liczbę prób logowania, komunikaty błędów nie powinny zdradzać, czy login istnieje, a sesję zabezpiecz flagami ciasteczek i HTTPS.
Uwierzytelnianie a autoryzacja
Uwierzytelnianie ustala tożsamość, a autoryzacja decyduje o prawach po zalogowaniu. Mylenie obu pojęć prowadzi do błędów, w których zalogowany użytkownik widzi cudze dane.
Gdy żądanie nie przejdzie weryfikacji tożsamości, serwer zwraca zwykle błąd 401 Unauthorized.
Zobacz w praktyce
Błąd 401 (Unauthorized) - co oznacza i jak go naprawić?
Ochrona przed atakami brute force – jak zabezpieczam logowanie na stronie i serwerze
Jak bezpiecznie przechowywać hasła użytkowników w bazie danych