⊗ppPmAuAHS 425 of 447 menu

Додавање на сол во авторизација

Сега ни е потребно да ја смениме авторизацијата. Овде веќе промените ќе бидат позначајни.

Веќе нема да може да се провери исправноста на парот логин-лозинка веднаш, со еден барање. Зошто: бидејќи, за да се провери лозинката, треба да се добие нејзиниот солен хеш, а солта се чува во базата на податоци и е уникатна за секој логин.

Ќе мора прво да се добие записот само по логинот, да се прочита солта, да се посоли внесената лозинка и да се спореди со солената лозинка од базата и само, ако тие се совпаѓаат, - да се авторизира корисникот.

Имајте предвид дека може да се случи така што логинот е внесен погрешно, во овој случај проверката на лозинката не треба да се извршува, туку веднаш да се прикаже дека авторизацијата не е можна - податоците не се точни:

<?php $login = $_POST['login']; $query = "SELECT * FROM users WHERE login='$login'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { // корисник со таков логин постои, сега треба да се провери лозинката... } else { // корисник со таков логин не постои, ќе прикажеме порака } ?>

Ајде да додадеме проверка на лозинката:

<?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']; // сол од базата на податоци $hash = $user['password']; // солена лозинка од базата на податоци $password = md5($salt . $_POST['password']); // солена лозинка од корисникот // Споредуваме солени хешови if ($password == $hash) { // сè е во ред, авторизираме... } else { // лозинката не одговара, ќе прикажеме порака } } else { // корисник со таков логин не постои, ќе прикажеме порака } ?>

Во интереси на безбедноста, на корисникот обично не му се соопштува што точно не одговара - логинот или лозинката, за да се отежне пребарувањето на парот логин-лозинка од хакери. Едноставно се прикажува порака за тоа дека парот логин-лозинка е неточен или нешто слично.

Имплементирајте ја опишаната погоре авторизација со солена лозинка. Обидете се да се регистрирате, најавете се, уверете се дека сè функционира.

Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј