ဝဘ်အသုံးချပရိုဂရမ်များကိုတီထွင်သောအခါဒေတာစီစစ်ခြင်းနှင့်စိစစ်အတည်ပြုခြင်းသည်အလွန်အရေးကြီးသည်။ အထူးသဖြင့်ဒေတာဘေ့စ်လုပ်ငန်းများပါ 0 င်သော applications များအတွက် sql injection တိုက်ခိုက်မှုများကိုမည်သို့ကာကွယ်နိုင်မည်နည်း။ ဤဆောင်းပါးသည် PHP ရှိ PHP ရှိ filtering method များကို developer များလုံခြုံရေးတိုးမြှင့်ရေးအတွက်တားဆီးရန် PHP တွင် filtering နည်းလမ်းများမိတ်ဆက်ပေးလိမ့်မည်။
Preprocessing ထုတ်ပြန်ချက်များသည် SQL ဆေးထိုးတိုက်ခိုက်မှုများကိုကာကွယ်ရန်ထိရောက်သောနည်းလမ်းဖြစ်သည်။ ၎င်းသည် SQL Querys နှင့် parameters များကိုသီးခြားစီခွဲထားကာ SQL ထုတ်ပြန်ချက်များနှင့်အတူအသုံးပြုသူများမှအချက်အလက်များကိုတိုက်ရိုက်ခွဲခြားထားသည့်အချက်အလက်များကိုရှောင်ရှားနိုင်သည်။ PHP တွင် PODO (PHP Data Oblatchs) သို့မဟုတ် MySQLI (MySQLI (MySQLICE) သို့မဟုတ် MySQLI (MySQL ပိုမိုကောင်းမွန်သောတိုးချဲ့ခြင်း) ကိုသုံးနိုင်သည်။
PDO ကိုအသုံးပြုပြီး POPO ကိုသုံးပြီး preprocessing ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်ရန်အတွက်ကုဒ်ဥပမာတစ်ခုဖြစ်သည်။
// ဖန်တီး PDO ဆက်
$pdo = new PDO('mysql:host=localhost;dbname=mydb;charset=utf8', 'username', 'password');
// Preprocessing ထုတ်ပြန်ချက်များကိုပြင်ဆင်ပါ
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username');
// parameters တွေကိုချည်ထား
$stmt->bindParam(':username', $username);
// တစ် ဦး စုံစမ်းမှု execute
$stmt->execute();
// ရလဒ်များကိုရယူပါ
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
PHP သည်သုံးစွဲသူထည့်သွင်းမှုအချက်အလက်များကို filter_input () နှင့် filter_var () စသည့် filter-in furction များကိုများစွာပေးသည်။ ဤလုပ်ဆောင်ချက်များသည်သတ်မှတ်ထားသောစစ်ထုတ်ခြင်းများအပေါ် အခြေခံ. အချက်အလက်များကိုအတည်ပြုနိုင်ရန် Developer များက SQL Injection Attacks ကိုထိရောက်စွာကာကွယ်ရန်ကူညီခြင်းများကိုကူညီခြင်းများပြုလုပ်နိုင်သည်။
Filter_INPPAP () နှင့် filter_var () ကို သုံး. ဒေတာစီစစ်ခြင်းအတွက်ကုဒ်စစ်ထုတ်ခြင်းအတွက်ကုဒ်နမူနာတစ်ခုရှိသည်။
// အသုံးပြု filter_input() Input အချက်အလက်များကို filter လုပ်ပါ
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);
// အသုံးပြု filter_var() Input အချက်အလက်များကို filter လုပ်ပါ
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
အသုံးပြုသူထည့်သွင်းထားသောအချက်အလက်များကို SQL ထုတ်ပြန်ချက်များထည့်သွင်းသောအခါအထူးအက္ခရာများကိုလွတ်မြောက်ရမည်။ PHP သည် addslashes () နှင့် mysqli_real_real_reescape_String () functions များကိုထောက်ပံ့ပေးသည်။
MySQLI_REAL_REAL_Sescape_String () function ကို သုံး. ကုဒ်နမူနာတစ်ခုရှိသည်။
// ဖန်တီး mysqli ဆက်
$conn = mysqli_connect('localhost', 'username', 'password', 'mydb');
// အထူးအက္ခရာများမှလွတ်မြောက်ရန်
$username = mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
// ကရိယာတန်းဆာ SQL မေးမြန်း
$query = "INSERT INTO users (username, password) VALUES('$username', '$password')";
mysqli_query($conn, $query);
Preprocessing ထုတ်ပြန်ချက်များ, စစ်ထုတ်ခြင်းလုပ်ဆောင်ချက်များနှင့်အထူးအက္ခရာများမှလွတ်မြောက်ရန် developer များက SQL Injection Attacks ကိုထိရောက်စွာတားဆီးနိုင်သည်။ သို့သော်ဆော့ (ဖ်) ဝဲကိုဆက်လုပ်ရန်နှင့်ဖြစ်နိုင်ချေရှိသောလုံခြုံရေးအားနည်းချက်များကိုပြန်လည်ပြုပြင်ရန်အလားတူအရေးကြီးသည်။ ထို့ကြောင့် developer များကသူတို့၏လျှောက်လွှာများ၏လုံခြုံရေးကိုသေချာစေရန်နောက်ဆုံးပေါ်လုံခြုံရေးအားနည်းချက်များနှင့်ပြုပြင်မှုများကိုအမြဲတမ်းဂရုပြုရန်လိုအပ်သည်။
ယေဘုယျအားဖြင့်အသုံးပြုသူအချက်အလက်များလုံခြုံရေးကိုကာကွယ်ခြင်းသည် web developer များအတွက်မရှိမဖြစ်လိုအပ်သည်။ ဒေတာ filtering နှင့် verification methods များကိုအသုံးပြုရန်အတွက်လျှောက်လွှာများ၏လုံခြုံရေးသိသိသာသာတိုးတက်လာခြင်းနှင့် SQL injection တိုက်ခိုက်မှုအန္တရာယ်များကိုလျှော့ချနိုင်သည်။ ဤဆောင်းပါးသည် PHP developer များအနေဖြင့် PHP developer များအတွက်တန်ဖိုးရှိသောလမ်းညွှန်ချက်အချို့ကို SQL Injection Attack ကိုတားဆီးရန်ကူညီရန်အဖိုးတန်လမ်းညွှန်ချက်အချို့ပေးသည်။