⊗ppPmAuAHS 425 of 447 menu

Dodawanie soli do autoryzacji

Teraz musimy zmienić autoryzację. Tutaj zmiany będą już bardziej znaczące.

Nie będzie już możliwości sprawdzenia poprawności pary login-hasło od razu, jednym zapytaniem. Dlaczego: ponieważ, aby sprawdzić hasło, trzeba pobrać jego zasolony hash, a sól jest przechowywana w bazie danych i jest unikalna dla każdego loginu.

Będzie trzeba najpierw pobrać rekord tylko po loginie, odczytać sól, posolić wprowadzone hasło i porównać z zasolonym hasłem z bazy i tylko, jeśli się zgadzają, - autoryzować użytkownika.

Weź pod uwagę, że może być tak, że login został wpisany nieprawidłowo, w tym przypadku sprawdzania hasła można nie przeprowadzać, a od razu wyświetlić, że autoryzacja nie jest możliwa - dane są nieprawidłowe:

<?php $login = $_POST['login']; $query = "SELECT * FROM users WHERE login='$login'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { // użytkownik z takim loginem istnieje, teraz trzeba sprawdzić hasło... } else { // użytkownik z takim loginem nie istnieje, wyświetlimy komunikat } ?>

Dodajmy sprawdzenie hasła:

<?php $login = $_POST['login']; $query = "SELECT * FROM users WHERE login='$login'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { $salt = $user['salt']; // sól z BD $hash = $user['password']; // zasolone hasło z BD $password = md5($salt . $_POST['password']); // zasolone hasło od użytkownika // Porównujemy zasolone hashe if ($password == $hash) { // wszystko ok, autoryzujemy... } else { // hasło nie pasuje, wyświetlimy komunikat } } else { // użytkownik z takim loginem nie istnieje, wyświetlimy komunikat } ?>

Ze względów bezpieczeństwa użytkownikowi zwykle nie komunikuje się, co dokładnie nie pasuje - login czy hasło, aby utrudnić podbieranie par login-hasło przez hakerów. Po prostu wyświetla się komunikat o tym, że para login-hasło jest nieprawidłowa lub coś w tym rodzaju.

Zaimplementuj opisaną powyżej autoryzację z zasolonym hasłem. Spróbuj się zarejestrować, zaloguj się, upewnij się, że wszystko działa.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć