⊗ppPmAuAHS 425 of 447 menu

Dodavanje soli u autorizaciju

Sada nam je potrebno da promenimo autorizaciju. Ovde će izmene već biti značajnije.

Više neće biti moguće proveriti tačnost para login-šifra odmah, jednim upitom. Zašto: zato što, da bi se proverila šifra, potrebno je da se dobije njen heš sa solju, a so se čuva u bazi podataka i jedinstvena je za svaki login.

Moraće se prvo dobiti zapis samo po loginu, pročitati so, posoliti unetu šifru i uporediti sa slanom šifrom iz baze i samo, ako se poklapaju, - autorizovati korisnika.

Imajte u vidu da može da se desi da je login unet pogrešno, u ovom slučaju proveru šifre ne treba sprovoditi, već odmah ispisati da autorizacija nije moguća - podaci nisu tačni:

<?php $login = $_POST['login']; $query = "SELECT * FROM users WHERE login='$login'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { // korisnik sa takvim loginom postoji, sada treba proveriti šifru... } else { // korisnika sa takvim loginom nema, ispisaćemo poruku } ?>

Dodajmo proveru šifre:

<?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']; // so iz baze $hash = $user['password']; // slana šifra iz baze $password = md5($salt . $_POST['password']); // slana šifra od korisnika // Upoređujemo slane heševe if ($password == $hash) { // sve je u redu, autorizujemo... } else { // šifra nije odgovarala, ispisaćemo poruku } } else { // korisnika sa takvim loginom nema, ispisaćemo poruku } ?>

U cilju bezbednosti korisniku se obično ne saopštava šta tačno nije odgovaralo - login ili šifra, da bi se otežalo podbacivanje parova login-šifra hakerima. Jednostavno se ispisuje poruka da je par login-šifra netačan ili nešto u tom smislu.

Implementirajte gore opisanu autorizaciju sa slanom šifrom. Pokušajte da se registrujete, autorizujete, ubedite se da sve funkcioniše.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij