လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP လုံခြုံရေးကာကွယ်စောင့်ရှောက်ရေး - SQL Injection Attack ကိုထိရောက်စွာကာကွယ်ရန် Filter_INPAT function ကိုသုံးပါ

PHP လုံခြုံရေးကာကွယ်စောင့်ရှောက်ရေး - SQL Injection Attack ကိုထိရောက်စွာကာကွယ်ရန် Filter_INPAT function ကိုသုံးပါ

M66 2025-06-18

PHP လုံခြုံရေးကာကွယ်စောင့်ရှောက်ရေး - SQL Injection Attack ကိုကာကွယ်ရန် Filter_INPAT function ကိုအသုံးပြုနည်း

လုံခြုံရေးသည်ဝဘ်လျှောက်လွှာဖွံ့ဖြိုးတိုးတက်မှုတွင်အလွန်အရေးကြီးသည်။ အသုံးပြုသူထည့်သွင်းမှုကိုကိုင်တွယ်သည့်အခါ SQL ဆေးထိုးတိုက်ခိုက်မှုများကိုကာကွယ်ရန်အထူးအရေးကြီးသည်။ ဤဆောင်းပါးသည် SQL Injection တိုက်ခိုက်မှုများကိုထိရောက်စွာကာကွယ်ရန် PHP ၏ Filter_ENTAPFORT function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးမည်။

SQL Injection Attack ဆိုတာဘာလဲ။

SQL Injection Attack သည် 0 က်ဘ်အပလီကေးရှင်းများတွင်အားနည်းချက်တစ်ခုဖြစ်သည်။ တိုက်ခိုက်သူသည် application ၏လုံခြုံရေးကာကွယ်စောင့်ရှောက်ရေးကိုကျော်လွှားပြီးဒေတာဘေ့စ်တွင်အထိခိုက်မခံသောအချက်အလက်များကိုကျော်လွှားရန်အန္တရာယ်ရှိသည့်အချက်အလက်များကိုထည့်သွင်းထားသည့်အချက်အလက်များကိုထည့်သွင်းထားသည်။

filter_input function ကိုမိတ်ဆက်

Filter_INPAP function သည် PHP မှပေးသောအားကောင်းသောကိရိယာတစ်ခုဖြစ်သည်။ မတူညီသောစစ်ထုတ်ကိရိယာများကိုသတ်မှတ်ခြင်းဖြင့်အချက်အလက်များ၏တရားဝင်မှုကိုသေချာစေရန်သွင်းအားစုအမျိုးအစားများကိုထိထိရောက်ရောက်အတည်ပြုနိုင်သည်။

Filter_Input function ကိုအသုံးပြုပြီး SQL ဆေးထိုးတိုက်ခိုက်မှုများကိုမည်သို့ကာကွယ်နိုင်သနည်း။

SQL Injection Attack ကိုကာကွယ်ရန် Filter_ENTAP function ကိုအသုံးပြုရန် Filter_ENTAP function ကိုအသုံးပြုရန်အတွက်ထိရောက်သောအကြံပြုချက်များကိုဤတွင်ဖော်ပြထားသည်။

  1. input ကိုအချက်အလက်အမျိုးအစားကိုစစ်ဆေးပါ။
    အသုံးပြုသူ input ကိုလုပ်ဆောင်သောအခါ input data အမျိုးအစားကိုအတည်ပြုရန် filter_Input function ကိုပထမ ဦး စွာသုံးပါ။ ဥပမာအားဖြင့်, input တစ်ခု input ကိုကိန်းတစ်ခုဖြစ်ကြောင်းအတည်ပြုရန်လိုအပ်ပါကအတည်ပြုရန် int filter ကိုသုံးနိုင်သည်။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

$input = filter_input(INPUT_POST, 'input_name' , FILTER_VALIDATE_INT);

if ( $input === false) {

// 输入数据不是整数类型

} else {

// 输入数据是整数类型

}

  1. အထူးအက္ခရာများကိုစစ်ထုတ်ပါ
    SQL Injection Attack သည်အထူးသဖြင့်အန္တရာယ်ရှိသောကုဒ်ကိုထည့်သွင်းရန်အထူးအက္ခရာများကိုအသုံးပြုသည်။ Input တွင်အထူးအက္ခရာများကိုရှင်းလင်းရန် filter_sanitize_string filter ကိုကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

$input = filter_input(INPUT_POST, 'input_name' , FILTER_SANITIZE_STRING);

  1. SQL Query လုပ်ရန် PDO ကိုသုံးပါ။
    PDO (PHP Database Object Object) သည်ပိုမိုလုံခြုံသောဒေတာဘေ့စ် connection နည်းလမ်းကိုပေးသည်။ Preprocessing ထုတ်ပြန်ချက်များနှင့် parameter စည်းမျဉ်းစည်းကမ်းများကိုအသုံးပြုခြင်းအားဖြင့် SQL injection တိုက်ခိုက်မှုများကိုထိရောက်စွာကာကွယ်နိုင်သည်။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

$pdo = new PDO( 'mysql:host=localhost;dbname=mydb' , 'username' , 'password' );

$stmt = $pdo ->prepare( 'SELECT * FROM users WHERE username = :username' );

$stmt ->bindParam( ':username' , $username );

$stmt ->execute();

$result = $stmt ->fetch(PDO::FETCH_ASSOC);

မှတ်သားရန်အရာ

filter_input function နှင့် pdo ကိုသုံးသောအခါအောက်ပါအချက်များမှာသေချာအောင်လုပ်ပါ။

  1. filter_Input function ကိုအသုံးပြုသောအခါ input အချက်အလက်များ၏လုံခြုံရေးကိုသေချာစေရန် input variable တွေကိုအမျိုးအစားများကိုသေချာစွာဖော်ပြရန်သေချာပါစေ။
  2. PDO ကိုအသုံးပြုသောအခါ SQL Injection တိုက်ခိုက်မှုများကိုကာကွယ်ရန် Preprocessing ထုတ်ပြန်ချက်များနှင့် parameter စည်းလုံးညီညွတ်မှုများမှတဆင့် SQL Conferces များကိုသေချာစွာလုပ်ဆောင်ပါ။
  3. ၎င်း၏တရားဝင်မှုနှင့်လုံခြုံရေးကိုသေချာစေရန်သုံးစွဲသူထည့်သွင်းမှုကိုအမြဲတမ်းစစ်ဆေးပါ။

နိဂုံးချုပ်အားဖြင့်

SQL injection တိုက်ခိုက်မှုများကိုကာကွယ်ခြင်းသည်ဝက်ဘ်လျှောက်လွှာဖွံ့ဖြိုးတိုးတက်မှုတွင်အရေးကြီးသောလုပ်ငန်းတာဝန်တစ်ခုဖြစ်သည်။ PHP ၏ filter_input function နှင့် PDO ကိုအသုံးပြုရန်အတွက်ကျွန်ုပ်တို့သည်ကျွန်ုပ်တို့၏လျှောက်လွှာ၏လုံခြုံရေးကိုသိသိသာသာတိုးတက်စေပြီး SQL Injection ၏အန္တရာယ်များကိုကာကွယ်နိုင်သည်။ ဤနည်းလမ်းများသည်အလားအလာရှိသောတိုက်ခိုက်မှုများအားလုံးကိုလုံးဝပပျောက်နိုင်သော်လည်းဖွံ့ဖြိုးတိုးတက်မှုကာလအတွင်းကျယ်ပြန့်စွာအသုံးပြုသောထိရောက်သောလုံခြုံရေးလုပ်ထုံးလုပ်နည်းများဖြစ်သည်။