ဒေတာဘေ့စ်လုပ်ငန်းများလုပ်ဆောင်သောအခါလုံခြုံရေးသည်အရေးပါသည်။ SQL Injection Attack သည်ဆိုက်ဘာတိုက်ခိုက်မှု၏အသုံးအများဆုံးနည်းလမ်းဖြစ်သည်။ ထို့ကြောင့် SQL ဆေးထိုးတိုက်ခိုက်မှုများကိုကာကွယ်ရန်ကျွန်ုပ်တို့၏လျှောက်လွှာများ၏လုံခြုံရေးကိုသေချာစေရန်ကြိုတင်ကာကွယ်မှုများပြုလုပ်ရန်လိုအပ်သည်။
Parameterized မေးမြန်းချက်များသည် SQL ဆေးထိုးတိုက်ခိုက်မှုများကိုကာကွယ်ရန်အထိရောက်ဆုံးနည်းလမ်းတစ်ခုဖြစ်သည်။ အသုံးပြုသူမှထည့်သွင်းထားသောအသုံးပြုသူမှထည့်သွင်းထားသောတန်ဖိုးများကိုခွဲထုတ်ခြင်းဖြင့်အန္တရာယ်ရှိသော SQL Code ကိုကွပ်မျက်ခြင်းကိုရှောင်ရှားသည်။ PHP တွင် PODO (PHP Data Object) extension ကို parameterized မေးမြန်းချက်များကိုအကောင်အထည်ဖော်ရန်သင်အသုံးပြုနိုင်သည်။
PODATEAMED မေးမြန်းချက်များကိုအကောင်အထည်ဖော်ရန် PDO ကို အသုံးပြု. PDO ကို အသုံးပြု. ဥပမာတစ်ခုဖြစ်သည်။
$ servername = "localhost"; $ username = "your_username"; $ စကားဝှက် = "your_password"; $ dbname = "your_database"; ကြိုးစားကြည့်ပါ $ Conn = PDO အသစ် ("MySQL: host = $ sermername; dbname = $ dBname", $ username, $ username, $ username, $ password); $ connatribute (PDO :: Atto: Atto: PDO :: erdo :: erdo :: Ergomode_ erdo_ergration); $ username = $ _post ['username']; $ စကားဝှက် = $ _post ['password']; $ stmt = $ conn-> ပြင်ဆင်မှု ("username =: အသုံးပြုသူအမည် =: စကားဝှက် =: စကားဝှက်" အသုံးပြုသူများမှအသုံးပြုသူများမှ Select *); $ stmt-> binparam ('- သုံးစွဲသူအမည်', $ username); $ stmt-> binparam (': စကားဝှက်', $ စကားဝှက်); $ stmt-> execute (); $ ရလဒ် = $ stmt-> fetchall (PDO :: FETT_AST_ASTAR); } ဖမ်း (PoCoException $ E) { // ခြွင်းချက်ကိုင်တွယ် ... }
Parameterized Query မှတစ်ဆင့်အသုံးပြုသူထည့်သွင်းထားသောတန်ဖိုးများကို SQL ထုတ်ပြန်ချက်များမှသီးခြားစီလုပ်ဆောင်ပြီး bintparam method မှတဆင့် query charge ကို charger charge သို့ထည့်သွင်းထားသည်။
Parameterized မေးမြန်းချက်များကိုအသုံးပြုခြင်းအပြင် SQL ထိုးဆေးကိုကာကွယ်ရန်အခြားနည်းလမ်းမှာအသုံးပြုသူထည့်သွင်းမှုများကိုတင်းကြပ်စွာ filter လုပ်ရန်နှင့်အတည်ပြုရန်ဖြစ်သည်။ Filter_Var () နှင့် filter_input ကဲ့သို့သော PHP ၏ filter functions များကို input data ကိုစစ်ဆေးရန်နှင့်သန့်ရှင်းရေးလုပ်ရန်အသုံးပြုနိုင်သည်။
အသုံးပြုသူ input ကိုစစ်ထုတ်ခြင်းနှင့်အတည်ပြုခြင်း၏ဥပမာတစ်ခုမှာ -
$ username = $ _post ['username']; $ စကားဝှက် = $ _post ['password']; (! အချည်းနှီးသော ($ username) &&! အချည်းနှီးသော ($ စကားဝှက်)) { // filter ကို filter ကို username နှင့် password ကို verify filteredusername = filter_var ($ username, filter_snitize_string); $ filteruppassword = filter_var ($ စကားဝှက်, filter_sanitize_string); // စုံစမ်းမှုစစ်ဆင်ရေးဖျော်ဖြေ .../ } အခြား // အသုံးပြုသူအမည်နှင့်စကားဝှက်သည် echo "အသုံးပြုသူအမည်နှင့်စကားဝှက်သည်ဗလာမဖြစ်နိုင်ပါ" }
ဤဥပမာတွင် User Input မှမလုံခြုံသောစာလုံးများကိုရှင်းလင်းရန် filter_sanitize_String filter ကို အသုံးပြု. သုံးစွဲသူသည်အန္တရာယ်ရှိသော SQL Code သို့ 0 င်ရောက်လျှင်၎င်းကိုအလိုအလျောက်ဖယ်ရှားခြင်းသို့မဟုတ်လွတ်မြောက်လိမ့်မည်။
စနစ်၏လုံခြုံရေးကိုမြှင့်တင်ရန်အတွက်ဒေတာဘေ့စ်အသုံးပြုသူ၏ခွင့်ပြုချက်များကိုအနည်းဆုံးအထိအနိမ့်ဆုံးပြုလုပ်ပြီးလိုအပ်သောလုပ်ငန်းများကိုလုပ်ဆောင်ရန်လိုအပ်သောခွင့်ပြုချက်များကိုသာပေးသည်။ Database အသုံးပြုသူများကိုအလွန်အကျွံခွင့်ပြုချက်ပေးခြင်းကိုရှောင်ပါ။
လျှောက်လွှာများနှင့်ဒေတာဘေ့စ်များ၏လုံခြုံရေးကိုသေချာစေရန်ပုံမှန် update နှင့်ပြုပြင်ထိန်းသိမ်းမှုသည်အလွန်အရေးကြီးသည်။ လူသိများသောလုံခြုံရေးအားနည်းချက်များကိုအချိန်မီသတ်မှတ်ပြီးဒေတာချို့တဲ့မှုသို့မဟုတ်အန္တရာယ်ရှိသော tampering ကိုကာကွယ်ရန်ဒေတာဘေ့စ်ကိုပုံမှန်အားဖြင့်ထောက်ခံသည်ကိုသေချာစေပါ။
SQL injection တိုက်ခိုက်မှုများကိုကာကွယ်ခြင်းသည်လျှောက်လွှာလုံခြုံရေးကိုသေချာစေရန်အရေးကြီးသောအဆင့်များထဲမှတစ်ခုဖြစ်သည်။ Parameterized မေးမြန်းချက်များကိုအသုံးပြုခြင်း, စစ်ထုတ်ခြင်းနှင့်အတည်ပြုခြင်းအားဖြင့်ဒေတာဘေ့စ်ခွင့်ပြုချက်များကိုအသုံးပြုခြင်း, ထို့အပြင်ကျွန်ုပ်တို့သည်နောက်ဆုံးပေါ်လုံခြုံရေးခြိမ်းခြောက်မှုများနှင့်အားနည်းချက်များကိုပုံမှန်ဂရုပြုသင့်သည်။