အသုံးပြုသူ authentication systems ၏လုံခြုံရေးသည်ဝက်ဘ်ဆိုက်များသို့မဟုတ်အသုံးချပရိုဂရမ်များတည်ဆောက်ရာတွင်အရေးကြီးသောထည့်သွင်းစဉ်းစားခြင်းဖြစ်သည်။ PHP သည်စကားဝှက်စာဝှက်ခြင်းနှင့်စစ်ဆေးခြင်းကိုအကောင်အထည်ဖော်ရန်နည်းလမ်းအမျိုးမျိုးကိုပေးသည် ။ ဤဆောင်းပါးသည်စကားဝှက်စာဝှက်ခြင်း, စိစစ်အတည်ပြုခြင်းနှင့်အသုံးပြုသူအချက်အလက်အပြောင်းအလဲများကိုအပါအ 0 င်လုံခြုံသောအသုံးပြုသူမှတ်ပုံတင်ခြင်းနှင့် login system ကိုတည်ဆောက်ရန် Crypt () function ကိုမည်သို့အသုံးပြုရမည်ကိုရှင်းပြပါမည်။
Crypt () သည် PHP မှပေးသော php မှပေးသော encryption function တစ်ခုဖြစ်ပြီးကြိုးများကိုစာဝှက်ရန်အသုံးပြုသော PHP algorithm ကိုအသုံးပြုသည်။ ၎င်းသည်ဆား (Sal) ပုံစံပေါ် မူတည်. MD5, MD5, Sha-256, Sha-256, Sha-512, Sha-512,
string crypt ( string $str , string $salt )
ဆား ၏တန်ဖိုးသည် encryption algorithm ၏အမျိုးအစားနှင့်အပြုအမူကိုဆုံးဖြတ်သည်။ လုံခြုံရေးအတွက် Sha-512 သို့မဟုတ် blowish ကိုထောက်ပံ့သောဆားကိုအသုံးပြုရန်အကြံပြုသည်။
အသုံးပြုသူတစ် ဦး ကိုမှတ်ပုံတင်သည့်အခါဒေတာဘေ့စ်ပေါက်ကြားမှုရှိနေသော်လည်းတိုက်ခိုက်သူသည်စကားဝှက်ကိုအလွယ်တကူမပြန်နိုင်အောင်လျှို့ဝှက်နံပါတ်တွင်စာဝှက်ရန်လိုအပ်သည်။
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
// အားကောင်းတဲ့ဆားတစ်ခုကိုဖန်တီးပြီးစကားဝှက်ကိုစာဝှက်ပါ(အသုံးပြုSHA-512)
$salt = '$6$' . bin2hex(random_bytes(16)) . '$'; // SHA-512
$hashed_password = crypt($password, $salt);
// အသုံးပြုသူအမည်နှင့်စာဝှက်ထားသောစကားဝှက်ကိုဒေတာဘေ့စ်သို့သိမ်းဆည်းပါ(ဖြင့်SQLiteဥပမာတစ်ခုအနေဖြင့်)
$db = new PDO('sqlite:users.db');
$stmt = $db->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
$stmt->execute([$username, $hashed_password]);
echo "အောင်မြင်စွာမှတ်ပုံတင်,ကျေးဇူးပြု <a href='https://m66.net/login.php'>လော့ဂ်အင်</a>。";
}
?>
HTML မှတ်ပုံတင်ခြင်းပုံစံ:
<form method="POST" action="">
အသုံးပြုသူ:<input type="text" name="username" required><br>
လှျို့ဝှက်စကား:<input type="password" name="password" required><br>
<input type="submit" value="စာရင်း">
</form>
သစ်ထုတ်လုပ်သည့်အခါမူရင်းစကားဝှက်ကိုကျွန်ုပ်တို့သိရန်မလိုအပ်ပါ။ အသုံးပြုသူမှထည့်သွင်း ထားသော စကားဝှက်ကိုဒေတာဗေ့စ်တွင်တူညီသောဆားကို အသုံးပြု. ၎င်းကိုသိုလှောင်ထားသော hash နှင့်နှိုင်းယှဉ်ပါ။
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'];
$password_input = $_POST['password'];
$db = new PDO('sqlite:users.db');
$stmt = $db->prepare("SELECT password FROM users WHERE username = ?");
$stmt->execute([$username]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if ($row) {
$hashed_password = $row['password'];
if (crypt($password_input, $hashed_password) === $hashed_password) {
echo "လော့ဂ်အင်成功!ကြိုဆိုပါတယ်,{$username}。";
} else {
echo "လှျို့ဝှက်စကား错误。";
}
} else {
echo "အသုံးပြုသူမတည်ရှိပါဘူး。";
}
}
?>
HTML login ပုံစံ:
<form method="POST" action="">
အသုံးပြုသူ:<input type="text" name="username" required><br>
လှျို့ဝှက်စကား:<input type="password" name="password" required><br>
<input type="submit" value="လော့ဂ်အင်">
</form>
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT UNIQUE NOT NULL,
password TEXT NOT NULL
);
HTTPS ကိုအသုံးပြုခြင်း - form transfer အားလုံးကိုစာဝှက်ထားတဲ့ connection တစ်ခုမှာဖျော်ဖြေဖို့သေချာအောင်လုပ်ပါ။
CSRF ကာကွယ်မှုကိုထည့်ပါ ။
login ကြိုးစားမှုအရေအတွက်ကိုကန့်သတ်ပါ ။ brute force cracking ကိုတားဆီးပါ။
PHP ဗားရှင်းကိုအချိန်မီဖြည့်ဆည်းပါ ။ encryption algorithms နှင့် functions များကိုလုံခြုံအောင်ထားပါ။
ပိုမိုခေတ်မီသောလုပ်ဆောင်ချက်များကိုအသုံးပြုသောအခါ (password_hash) ကို အသုံးပြုသောအခါဤဆောင်းပါး၏ယုတ္တိဗေဒကိုသင်ရည်ညွှန်းနိုင်သည် - crypt () သည် တရားဝင် ဖြစ်သည်။
ဆင်ခြင်သုံးသပ်ခြင်း () function ကိုအသုံးပြုခြင်းနှင့်ပူးတွဲပါစကားဝှက်စိစစ်အတည်ပြုယုတ္တိဗေဒကို အသုံးပြု. ဆင်ခြင်တုံတရားဖြင့် အသုံးပြု. ကျွန်ုပ်တို့သည်လုံခြုံစိတ်ချရသောအသုံးပြုသူ authentication system ကိုတည်ဆောက်နိုင်သည်။ Modern PHP သည် password_hash () အ လုပ်မလုပ်ခြင်းများကိုပိုမိုအဆင့်မြင့်သော interfaces များကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်ပေးသည်။ Crypt () သည် PHP ပတ် 0 န်းကျင်သို့မဟုတ်အထူးလိုက်လျောညီထွေဖြစ်မှုလိုအပ်ချက်များနည်းသောဗားရှင်းအချို့တွင်လက်တွေ့ကျတဲ့ရွေးချယ်မှုဖြစ်သည်။