ပိုမိုပြင်းထန်သောဆိုက်ဘာလုံခြုံရေးခြိမ်းခြောက်မှုများဖြစ်ပေါ်နေသည့်အခြေအနေတွင် Mastering ** PHP နှင့် SQL ဆေးထိုးဆေးများသည် developer များနှင့်လုံခြုံရေးအင်ဂျင်နီယာများအတွက်လိုအပ်သောကျွမ်းကျင်မှုတစ်ခုဖြစ်လာသည်။ လုံခြုံရေးစစ်ဆေးမှုအတွက်ဒီဇိုင်းပြုလုပ်ထားသောအလေ့အကျင့်ပလက်ဖောင်းတစ်ခုအနေဖြင့် DVWA (သူကပြောတယ်ထိခိုက်လွယ်သော web application) သည် SQL Injection Attack argetions များနှင့်လက်တွေ့ကျကျတိုက်ခိုက်မှုနှင့်လက်တွေ့ကျကျတိုက်ခိုက်မှုစွမ်းရည်များတိုးတက်အောင်ပြုလုပ်ရန်ကူညီပေးသည်။
SQL Injection သည်ဘုံတိုက်ခိုက်မှုနည်းလမ်းဖြစ်သည်။ input field သို့အန္တရာယ်ရှိသော SQL ထုတ်ပြန်ချက်များကိုထည့်သွင်းခြင်းအားဖြင့်တိုက်ခိုက်သူများသည်ဒေတာဖတ်ရှုခြင်း, ငြင်းပယ်ခြင်း, အရေးမကင်းသောသုံးစွဲသူ input ဖြင့်ဤတိုက်ခိုက်မှုသည် authentication system ကိုအလွယ်တကူကျော်လွှားနိုင်သည်သို့မဟုတ်ဒေတာဘေ့စ်အကြောင်းအရာကိုအသုံးပြုနိုင်သည်။ မည်သို့အလုပ်လုပ်သည်ကိုနားလည်ခြင်းသည်ကာကွယ်မှု၏ပထမခြေလှမ်းဖြစ်သည်။
စမ်းသပ်မှုမစတင်မီ DVWA Platform ကို install လုပ်ပြီးမှန်ကန်စွာပြင်ဆင်ရမည်။ စစ်ဆင်ရေးအဆင့်များသည်အောက်ပါအတိုင်းဖြစ်သည် -
1. ဒေါက်ဒေါင်းDVWAနောက်ဆုံးဗားရှင်း。
2. သေတမ်းစာDVWAဖိုင်များကို local or Remote Servers များသို့တင်ပါ(ပံ့ပိုးမှုလိုအပ်သည်PHP)。
3. ပြေးပတ်ဝန်းကျင်ကိုပြင်ဆင်ပါ,ဆာဗာကိုတပ်ဆင်ထားကြောင်းသေချာပါစေPHPနှင့်MySQL。
4. တစ် browser မှတဆင့်ဝင်ရောက်ခွင့်DVWA,စာမျက်နှာများအတွက်အရသိရသည်ဒေတာဘေ့စလေ့လာမှုကိုဖြည့်စွက်。
DVWA သည်အသုံးပြုသူများအားမတူညီသောလုံခြုံရေးအဆင့်များကိုစိတ်ကြိုက်ပြုပြင်ခွင့်ပြုသည်။ SQL Injection Estiting မပြုလုပ်မီဆေးထိုးခြင်းခံရသည်ကိုလေ့လာရန်နှင့်နားလည်ရန်လုံခြုံရေးအဆင့်ကို "အနိမ့်အမြင့်" သို့သတ်မှတ်ရန်အကြံပြုသည်။
DVWA သည်ဆေးထိုးစစ်ဆေးမှုစမ်းသပ်မှုမျိုးစုံကိုထောက်ပံ့ပေးသည်။ အောက်ပါတို့သည်ဘုံထိုးဆေးနည်းစနစ်များဖြစ်သည်။
ဥပမာအားဖြင့်, အသုံးပြုသူ login စာမျက်နှာတစ်ခုတွင် Authentication ကိုကျော်လွှားရန်ကြိုးစားရန်တိုက်ခိုက်သူသည်အောက်ပါတို့ကိုရိုက်ထည့်နိုင်သည်။
အသုံးပြုသူ: admin' --
လှျို့ဝှက်စကား: မည်သည့်အကြောင်းအရာမဆို
ဤနေရာတွင်ဤနေရာတွင် SQL Comment တစ်ခုဖြစ်ပြီးဆိုလိုသည်မှာစကားဝှက်အပိုင်းကိုဒေတာဘေ့စ်အင်ဂျင်ဖြင့်လျစ်လျူရှုလိမ့်မည်။
ပြည်ထောင်စု၏ထုတ်ပြန်ချက်များမှတစ်ဆင့်တိုက်ခိုက်သူသည်အခြားစားပွဲများမှဒေတာများကိုပေါင်းစည်းနိုင်သည်။
အသုံးပြုသူ: admin' UNION SELECT * FROM users --
ဤနည်းလမ်းသည်များသောအားဖြင့်အသုံးပြုသူအထောက်အထားများ, စာတိုက်ပုံးများစသည့်ဒေတာဘေ့စ်ရှိအခြားစားပွဲများမှအထိခိုက်မခံသောသတင်းအချက်အလက်များကိုခိုးယူရန်အသုံးပြုသည်။
တိုက်ခိုက်မှုနိယာမကိုနားလည်ပြီးနောက်ထိရောက်သောကာကွယ်ရေးနည်းစနစ်များကိုဖြန့်ချိရန် ပို. အရေးကြီးသည်။ အောက်ဖော်ပြပါအချက်များမှာအဓိကမဟာဗျူဟာများဖြစ်သည်။
Pround query method သည် SQL injection ကိုအသုံးပြုသူထည့်သွင်းမှုမှသီးခြားစီဟုဆိုသည်။ ဥပမာများမှာအောက်ပါအတိုင်းဖြစ်သည် -
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username');
$stmt->execute(['username' => $inputUsername]);
ဤချဉ်းကပ်မှုသည်အသုံးပြုသူထည့်သွင်းမှုကို SQL Code အဖြစ်အဓိပ္ပာယ်ကောက်ယူခြင်းမရှိပါ။
အသုံးပြုသူထည့်သွင်းမှုအားလုံးသည် format check လုပ်ထားပြီးအထူးအက္ခရာများကို formated ပြုလုပ်သင့်သည်။ ဥပမာအားဖြင့်, input format ကိုကန့်သတ်ရန်ပုံမှန်အသုံးအနှုန်းများကိုအသုံးပြုပါ။
DVWA ပလက်ဖောင်းမှတစ်ဆင့် PHP နှင့် SQL injection အလေ့အထများသည်ဆေးထိုးတိုက်ခိုက်မှုများ၏အခြေခံမူများကိုအလိုအလျောက်နားလည်နိုင်ရုံသာမကထိရောက်သောကာကွယ်ရေးနည်းလမ်းများလည်းပါ 0 င်နိုင်သည်။ ဆိုက်ဘာလုံခြုံရေးသည်ကာကွယ်ရေးရုံမျှသာမဟုတ်ပါ, Web developer တိုင်းတွင်ဖွံ့ဖြိုးပြီးသောစနစ်သည်ပိုမိုတည်ငြိမ်ပြီးယုံကြည်စိတ်ချရသောအရာများကိုသေချာစေရန်အခြေခံလုံခြုံရေးစစ်ဆေးမှုစွမ်းရည်ရှိသင့်ကြောင်းအကြံပြုသည်။