අවසරයට ලුණු එකතු කිරීම
දැන් අපගේ අවසර ක්රියාවලිය වෙනස් කිරීමට අවශ්යය. මෙහිදී වෙනස්කම් වඩාත් සැලකිය යුතු වනු ඇත.
ලොගින්-මුරපද යුගලයේ නිවැරදි බව වහාම, එක් විමසුමකින් පරීක්ෂා කළ නොහැක. හේතුව: මුරපදය පරීක්ෂා කිරීම සඳහා, එහි ලුණු එකතු කරන ලද හැෂ් එක ලබා ගත යුතු අතර, ලුණු දත්ත ගබඩාවේ ගබඩා කර ඇති අතර එය සෑම ලොගින් එකක් සඳහාම අද්විතීය වේ.
මුලින්ම ලොගින් එක අනුව වාර්තාව ලබා ගෙන, ලුණු කියවා, ඇතුළත් කරන ලද මුරපදයට ලුණු එකතු කර දත්ත ගබඩාවෙන් ලබාගත් ලුණු එකතු කරන ලද මුරපදය සමඟ සංසන්දනය කළ යුතු අතර, ඒවා ගැලපෙන්නේ නම් පමණක් පරිශීලකයාට අවසර දෙන්න.
සැලකිල්ලට ගන්න, ලොගින් එක වැරදි ලෙස ඇතුළත් කර ඇති අවස්ථාවක් තිබිය හැකිය, එවිට මුරපද පරීක්ෂාව කිරීමට අවශ්ය නැත, වහාම අවසරය ලබා දිය නොහැකි බව ප්රකාශ කළ හැකිය - දත්ත නිවැරදි නොවේ:
<?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 {
// එවැනි ලොගින් එකක් සහිත පරිශීලකයෙක් නොමැත, පණිවුඩය ප්රදර්ශනය කරන්න
}
?>
ආරක්ෂක හේතූන් මත, පරිශීලකයාට සාමාන්යයෙන් නොකියනු ලබන්නේ කුමක් නොගැලපුණේද යන්න - ලොගින් එක නැතිනම් මුරපදය, එයින් හැකර්වරුන්ට ලොගින්-මුරපද යුගල අනුමාන කිරීම අපහසු කිරීමට. සරලවම, ලොගින්-මුරපද යුගලය වැරදියි යන පණිවුඩය හෝ ඒ හා සමාන
ඉහත විස්තර කර ඇති ලුණු එකතු කරන ලද මුරපදය සමඟ අවසර ක්රියාවලිය ක්රියාත්මක කරන්න. ලියාපදිංචි වීමට, ඇතුළු වීමට උත්සාහ කරන්න, සියල්ල ක්රියාත්මක වන බවට විශ්වාස කරන්න.