Awtorizasiýada duz goşmak
Indi awtorizasiýamyzy üýtgetmeli. Bu ýerde üýtgeşmeler has ähmiýetli bolar.
Login-parol jübütiniň dogrulygyny bir wagtda, bir sorag bilen barlap bolmaz. Sebäbi: paroly barlamak üçin onuň duzly heşini almaly, ýöne duz berk maglumatlar bazasynda saklanýar we her bir login üçin özboluşly.
Ilki bilen diňe logine görä ýazgyny almaly, duzy okamaly, girizilen paroly duzlamaly we bazadan alynan duzly parol bilen deňeşdirmeli we diňe olar gabat gelende, ulanyjyny awtorizasiýa etmeli.
Unutmaň, login nädogry girizilen bolup biler, bu ýagdaýda paroly barlamak gerek däl, we awtorizasiýanyň mümkin däldigini, maglumatlaryň nädogrydygyny derrew görkezmeli:
<?php
$login = $_POST['login'];
$query = "SELECT * FROM users WHERE login='$login'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
if (!empty($user)) {
// Şeýle loginiň ulanyjysy bar, indi paroly barlamaly...
} else {
// Şeýle loginiň ulanyjysy ýok, habary görkezeris
}
?>
Geliň, paroly barlagy goşalyň:
<?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']; // BZ-dan duz
$hash = $user['password']; // BZ-dan duzly parol
$password = md5($salt . $_POST['password']); // Ulanyjydan duzly parol
// Duzly heşleri deňeşdirýäris
if ($password == $hash) {
// hemme gowy, awtorizasiýa edýäris...
} else {
// parol laýyk gelmedi, habary görkezeris
}
} else {
// Şeýle loginiň ulanyjysy ýok, habary görkezeris
}
?>
Howpsuzlyk maksady üçin adatça ulanyja haýsy nämäniň laýyk gelmedigini - login ýa-da paroly aýdyp bermezler, şeýlelik bilen login-parol jübütini hakerler tarapyndan tapmagy kynlaşdyrýar. Diňe login-parol jübütiniň nädogrydygy ýa-da şuňa meňzeş habary görkezýärler.
Ýokarda beýan edilen duzly parol bilen awtorizasiýany amala aşyryň. Hasaba alyşygy, awtorizasiýany synaň, hemme zadyň işleýändigine göz ýetiriň.