⊗ppPmAuAHS 425 of 447 menu

Zout toevoegen aan autorisatie

Nu moeten we de autorisatie aanpassen. Hier zullen de veranderingen ingrijpender zijn.

Het is niet langer mogelijk om de juistheid van het login-wachtwoord paar onmiddellijk te controleren met één verzoek. Waarom: omdat, om het wachtwoord te controleren, je de gezouten hash ervan moet verkrijgen, en het zout wordt opgeslagen in de database en is uniek voor elke login.

We zullen eerst de record alleen op basis van de login moeten ophalen, het zout lezen, het ingevoerde wachtwoord 'zouten', vergelijken met het gezouten wachtwoord uit de database en alleen, als ze overeenkomen, - de gebruiker autoriseren.

Houd er rekening mee dat het mogelijk is dat de login verkeerd is ingevoerd, in dat geval kan de wachtwoordcontrole niet worden uitgevoerd, en kan er direct worden weergegeven dat autorisatie niet mogelijk is - gegevens zijn onjuist:

<?php $login = $_POST['login']; $query = "SELECT * FROM users WHERE login='$login'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { // er is een gebruiker met deze login, nu moet het wachtwoord worden gecontroleerd... } else { // er is geen gebruiker met deze login, toon een bericht } ?>

Laten we de wachtwoordcontrole toevoegen:

<?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']; // zout uit de database $hash = $user['password']; // gezouten wachtwoord uit de database $password = md5($salt . $_POST['password']); // gezouten wachtwoord van de gebruiker // Vergelijk de gezouten hashes if ($password == $hash) { // alles ok, autoriseer... } else { // wachtwoord kwam niet overeen, toon een bericht } } else { // er is geen gebruiker met deze login, toon een bericht } ?>

Om veiligheidsredenen wordt de gebruiker meestal niet verteld wat er precies niet klopte - de login of het wachtwoord, om het raden van login-wachtwoord combinaties door hackers moeilijker te maken. Er wordt simpelweg een bericht getoond dat het login-wachtwoord paar onjuist is of iets dergelijks.

Implementeer de hierboven beschreven autorisatie met gezouten wachtwoord. Probeer je te registreren, autoriseer, en zorg ervoor dat alles werkt.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren