အတည်ပြုခြင်းတွင် ဆားထည့်သွင်းခြင်း

ယခု ကျွန်ုပ်တို့အနေဖြင့် အတည်ပြုခြင်းစနစ်ကို ပြောင်းလဲရန် လိုအပ်ပါသည်။ ဤနေရာတွင် ပြောင်းလဲမှုများသည် ပို၍အရေးပါလာပါမည်။

ဝင်ရောက်အမည်-စကားဝှက်စုံတွဲ၏ မှန်ကန်မှုကို ချက်ချင်းတစ်ကြိမ်တည်း တစ်ခုတည်းသော မေးမြန်းချက်ဖြင့် စစ်ဆေး၍မရတော့ပါ။ အဘယ်ကြောင့်ဆိုသော် စကားဝှက်ကို စစ်ဆေးရန် ဆားထည့်ထားသော hash ကိုရယူရမည်၊ ဆားကို database ထဲတွင် သိမ်းဆည်းထားပြီး ဝင်ရောက်အမည်တိုင်းအတွက် ထူးခြားသောကြောင့်ဖြစ်သည်။

အစတွင် ဝင်ရောက်အမည်ဖြင့်သာ မှတ်တမ်းကိုရယူရမည်၊ ဆားကိုဖတ်ရမည်၊ ရိုက်ထည့်ထားသော စကားဝှက်ကို ဆားထည့်ပေးရမည်ပြီး database မှ ဆားထည့်ထားသော စကားဝှက်နှင့် နှိုင်းယှဉ်ကြည့်ရမည်၊ သာ၍ ၎င်းတို့ကိုက်ညီမှသာ သုံးစွဲသူကို အတည်ပြုပေးရမည်။

ဝင်ရောက်အမည်ကို မှားယွင်းစွာရိုက်ထည့်ထားနိုင်သည်ကို သတိပြုပါ၊ ထိုသို့သောအခြေအနေတွင် စကားဝှက်စစ်ဆေးခြင်းကို ဆောင်ရွက်စရာမလိုဘဲ အတည်ပြုခြင်းမဖြစ်နိုင်ကြောင်း၊ အချက်အလက်များမမှန်ကြောင်း ချက်ချင်းပြသနိုင်ပါသည်။

html<?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 {
    // ထိုဝင်ရောက်အမည်ရှိသုံးစွဲသူမရှိပါ၊ မက်ဆေ့ဂျ်ပြမည်
  }
?>

စကားဝှက်စစ်ဆေးခြင်းကို ထည့်သွင်းကြည့်ပါစို့။

html<?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']; // database မှ ဆား
    $hash = $user['password']; // database မှ ဆားထည့်ထားသော စကားဝှက်
    
    $password = md5($salt . $_POST['password']); // သုံးစွဲသူမှ ဆားထည့်ထားသော စကားဝှက်
    
    // ဆားထည့်ထားသော hash များကို နှိုင်းယှဉ်ပါ
    if ($password == $hash) {
      // အားလုံးအဆင်ပြေသည်၊ အတည်ပြုသည်...
    } else {
      // စကားဝှက်မကိုက်ညီ၊ မက်ဆေ့ဂျ်ပြမည်
    }
  } else {
    // ထိုဝင်ရောက်အမည်ရှိသုံးစွဲသူမရှိပါ၊ မက်ဆေ့ဂျ်ပြမည်
  }
?>

လုံခြုံရေးအတွက် သုံးစွဲသူအား ဝင်ရောက်အမည် (သို့မဟုတ်) စကားဝှက် မှားယွင်းကြောင်း တိတိကျကျ မပြောလေ့ရှိပါ။ ၎င်းသည် ဟက်ကာများအတွက် ဝင်ရောက်အမည်-စကားဝှက်စုံတွဲများ ခန့်မှန်းရခက်စေရန် ရည်ရွယ်ပါသည်။ ဝင်ရောက်အမည်-စကားဝှက်စုံတွဲ မှားယွင်းကြောင်း (သို့) အလားတူ မက်ဆေ့ဂျ်များကိုသာ ပြသလေ့ရှိပါသည်။

Задание 1

အထက်ဖော်ပြပါ ဆားထည့်ထားသော စကားဝှက်ဖြင့် အတည်ပြုခြင်းစနစ်ကို အကောင်အထည်ဖော်ပါ။ စာရင်းသွင်းပါ၊ ဝင်ရောက်အတည်ပြုပါ၊ အားလုံးအလုပ်လုပ်ကြောင်း သေချာပါစေ။