⊗ppPmAuAHS 425 of 447 menu

Přidání soli do autorizace

Nyní musíme změnit autorizaci. Zde již budou změny podstatnější.

Už nebude možné okamžitě, jedním dotazem, ověřit správnost dvojice login-heslo. Proč: protože pro ověření hesla je nutné získat jeho solený hash, a sůl je uložena v databázi a je unikátní pro každý login.

Nejprve bude nutné získat záznam pouze podle loginu, přečíst sůl, přisolit zadané heslo a porovnat se soleným heslem z databáze a teprve, pokud se shodují, - autorizovat uživatele.

Počítejte s tím, že se může stát, že login je zadán nesprávně, v tomto případě lze ověření hesla neuskutečnit a okamžitě vypsat, že autorizace není možná - údaje nejsou správné:

<?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živatel s takovým loginem existuje, nyní je třeba ověřit heslo... } else { // uživatel s takovým loginem neexistuje, vypíšeme zprávu } ?>

Přidejme ověření 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']; // sůl z DB $hash = $user['password']; // solené heslo z DB $password = md5($salt . $_POST['password']); // solené heslo od uživatele // Porovnáváme solené hashe if ($password == $hash) { // vše v pořádku, autorizujeme... } else { // heslo nesedí, vypíšeme zprávu } } else { // uživatel s takovým loginem neexistuje, vypíšeme zprávu } ?>

Z bezpečnostních důvodů se uživateli obvykle nesděluje, co konkrétně nesedělo - login nebo heslo, aby se ztížil hackerský výběr párů login-heslo. Jednoduše se zobrazí zpráva o tom, že dvojice login-heslo je nesprávná nebo něco takového.

Realizujte výše popsanou autorizaci se soleným heslem. Zkuste se zaregistrovat, přihlásit, ujistěte se, že vše funguje.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout