⊗ppPmAuAHS 425 of 447 menu

Pridanie soli do autorizácie

Teraz musíme zmeniť autorizáciu. Tu už budú zmeny výraznejšie.

Už nebude možné okamžite, jednou požiadavkou overiť správnosť páru prihlasovacie meno-heslo. Prečo: pretože na overenie hesla je potrebné získať jeho soľaný hash, soľ je uložená v databáze a je unikátna pre každé prihlasovacie meno.

Najprv bude potrebné získať záznam len podľa prihlasovacieho mena, prečítať soľ, posoliť zadané heslo a porovnať so soľaným heslom z databázy a len v prípade, že sa zhodujú, - autorizovať používateľa.

Berte do úvahy, že sa môže stať, že prihlasovacie meno je zadané nesprávne, v tomto prípade overenie hesla je možné nevykonávať a okamžite vypísať, že autorizácia nie je možná - údaje sú nesprávne:

<?php $login = $_POST['login']; $query = "SELECT * FROM users WHERE login='$login'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { // používateľ s takýmto prihlasovacím menom existuje, teraz treba overiť heslo... } else { // používateľ s takýmto prihlasovacím menom neexistuje, vypíšeme správu } ?>

Pridajme overenie hesla:

<?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ľ z databázy $hash = $user['password']; // soľané heslo z databázy $password = md5($salt . $_POST['password']); // soľané heslo od používateľa // Porovnávame soľané hashe if ($password == $hash) { // všetko v poriadku, autorizujeme... } else { // heslo nesedelo, vypíšeme správu } } else { // používateľ s takýmto prihlasovacím menom neexistuje, vypíšeme správu } ?>

Z bezpečnostných dôvodov sa používateľovi zvyčajne neoznamuje, čo konkrétne nesedelo - prihlasovacie meno alebo heslo, aby sa sťažil postupný výskyt párov prihlasovacie meno-heslo hackermi. Jednoducho sa zobrazí správa o tom, že pár prihlasovacie meno-heslo je nesprávny alebo niečo v tom zmysle.

Realizujte opísanú autorizáciu so soľaným heslom. Skúste sa zaregistrovať, prihlásiť, presvedčte sa, že všetko funguje.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť