Илова кардани намак ба авторизатсия
Акнун мо бояд авторизатсиро тағйир диҳем. Дар ин ҷо тағйирот аллакай муҳимтар хоҳанд буд.
Дигар имкони санҷидани дурустии ҷуфти логин-парол якбора, бо як дархост нест. Чаро: зеро, ки барои санҷидани парол, бояд хеши намки онро гиред, ва намак нигоҳ дошта мешавад дар пойгоҳи додаҳо ва барои ҳар як логин ягона аст.
Бояд аввал сабтро танҳо бо логин гиред, намакро хонед, пароли воридшударо намк занед ва бо пароли намки аз пойгоҳи додаҳо муқоиса кунед ва танҳо, агар онҳо рост оянд, - корбарро авторизатсия кунед.
Дар назар доред, ки метавонад чунин бошад, ки логин ворид карда гашт нодуруст, дар ин сурат санҷиши парол ро метавон анҷом надод, ва фавтан чоп кунед, ки авторизатсия имконнопазир аст - додаҳо нодуруст:
<?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 {
// корбаре бо чунин логин вуҷуд надорад, паёмро чоп мекунем
}
?>
Барои амният корбарро одатан оҷона намекунанд, ки чизе нодуруст аст - логин ё парол, то тартиби таҳқиқи ҷуфтҳои логин-паролро барои ҳакерҳо мураккабтар кунанд. Танҳо паёмро чоп мекунанд, ки ҷуфти логин-парол нодуруст аст ё чизе аз ин қабил.
Авторизатсияи дар боло тавсифшударо бо пароли намки амалӣ кунед. Кӯшиш кунед сабти ном кунед, авторизатсия кунед, боварӣ ҳосил кунед, ки ҳама чиз кор мекунад.