⊗ppPmAuAHS 425 of 447 menu

Soola lisamine autoriseerimisse

Nüüd peame muutma autoriseerimist. Siin on muutused juba olulisemad.

Enam ei õnnestu kontrollida login-parooli paari õigsust kohe, ühe päringuga. Miks: selleks, et kontrollida parooli, tuleb saada selle soolatud räsi, kuid sool säilitatakse andmebaasis ja on unikaalne iga login jaoks.

Tuleb kõigepealt saada kirje ainult login-i alusel, lugeda sool, soolata sisestatud parool ja võrrelda soolatud parooliga andmebaasist ja ainult siis, kui need kattuvad, - autoriseerida kasutaja.

Pidage meeles, et võib juhtuda, et login on sisestatud valesti, sel juhul ei ole vaja parooli kontrollida, vaid võib kohe väljastada, et autoriseerimine ei ole võimalik - andmed on valed:

<?php $login = $_POST['login']; $query = "SELECT * FROM users WHERE login='$login'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { // sellise loginiga kasutaja on olemas, nüüd tuleb kontrollida parooli... } else { // sellise loginiga kasutajat pole, kuvame teate } ?>

Lisame parooli kontrolli:

<?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']; // sool andmebaasist $hash = $user['password']; // soolatud parool andmebaasist $password = md5($salt . $_POST['password']); // kasutaja soolatud parool // Võrdleme soolatud räsisid if ($password == $hash) { // kõik korras, autoriseerime... } else { // parool ei sobinud, kuvame teate } } else { // sellise loginiga kasutajat pole, kuvame teate } ?>

Turvalisuse huvides ei teavita kasutajat tavaliselt sellest, mis täpselt ei sobinud - login või parool, et raskendada login-parooli paaride häkkimist. Lihtsalt kuvatakse teade sellest, et login-parooli paar on vale või midagi sarnast.

Rakendage ülalkirjeldatud soolatud parooliga autoriseerimine. Proovige registreeruda, logige sisse, veenduge, et kõik töötab.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu