ဝက်ဘ်လျှောက်လွှာဖွံ့ဖြိုးတိုးတက်မှုတွင်ဒေတာစီစစ်ခြင်းနှင့်စစ်ဆေးခြင်းသည်လုံခြုံရေးကိုသေချာစေရန်အရေးကြီးသောအဆင့်များဖြစ်သည်။ အထူးသဖြင့်လျှောက်လွှာတွင်ဒေတာဘေ့စ်လုပ်ငန်းများပါ 0 င်သည်။ SQL Injection Attacks ကိုမည်သို့ကာကွယ်နိုင်မည်နည်း developer များအာရုံစိုက်ရမည်ဟူသောအဓိကပြ issue နာဖြစ်သည်။ ဤဆောင်းပါးသည် developer များကို SQL ဆေးထိုးတိုက်ခိုက်မှုများကိုထိရောက်စွာတားဆီးရန်ကူညီရန်ဘုံ PHP ဒေတာစီစစ်ခြင်းနည်းလမ်းများကိုမိတ်ဆက်ပေးလိမ့်မည်။
Preprocessing ထုတ်ပြန်ချက်များသည် SQL Injection Attember များကိုဒေတာ parameter များနှင့်သီးခြားစီခွဲထားရန်ထိရောက်သောနည်းလမ်းဖြစ်သည်။ PHP တွင် PDO (PHP Data Object) သို့မဟုတ် MySQLI (MySQLI (MySQLI) သို့မဟုတ် MySQLI (MySQL တိုးတက်မှု extension) ကိုသုံးနိုင်သည်။
POPO POPODED ထုတ်ပြန်ချက်များကိုအသုံးပြုပြီးကုဒ်နမူနာတစ်ခုမှာ -
// ဖန်တီး PDO ဆက်
$pdo = new PDO('mysql:host=localhost;dbname=mydb;charset=utf8', 'username', 'password');
<p>// Preprocessing ထုတ်ပြန်ချက်များကိုပြင်ဆင်ပါ<br>
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username');</p>
<p>// parameters တွေကိုချည်ထား<br>
$stmt->bindParam(':username', $username);</p>
<p>// တစ် ဦး စုံစမ်းမှု execute<br>
$stmt->execute();</p>
<p>// ရလဒ်များကိုရယူပါ<br>
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);<br>
PHP သည်သုံးစွဲသူထည့်သွင်းမှုအချက်အလက်များကို filter_input () နှင့် filter_var () စသည့် filter-in failts များကိုစီရန်လုပ်ဆောင်သည်။ ဤလုပ်ဆောင်ချက်များသည်သတ်မှတ်ထားသောစစ်ထုတ်ကိရိယာများအပေါ် အခြေခံ. input data များကို အခြေခံ. input data များကိုအတည်ပြုပြီးသန့်ရှင်းရေးပြုလုပ်နိုင်သည်။
ဤတွင် Filter_INPPOP () နှင့် filter_var () ကို အသုံးပြု. ကုဒ်နမူနာတစ်ခုရှိသည်။
// အသုံးပြု filter_input() Input အချက်အလက်များကို filter လုပ်ပါ
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);
<p>// အသုံးပြု filter_var() Input အချက်အလက်များကို filter လုပ်ပါ<br>
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);<br>
အသုံးပြုသူထည့်ထားသောအချက်အလက်များကို SQL ထုတ်ပြန်ချက်များထဲသို့ထည့်သောအခါကျွန်ုပ်တို့သည်အထူးအက္ခရာများမှလွတ်မြောက်ရန်လိုအပ်သည်။ PHP သည်ဤပြ problem နာကိုကိုင်တွယ်ရန် Addsqli_Real_Real_Real_Sescape_String () functions များကိုထောက်ပံ့ပေးသည်။
MySQLI_REAL_REAL_SERTAUTE_STRING ကို သုံး. အထူးအက္ခရာများမှလွတ်မြောက်ရန်ကုဒ်ဥပမာတစ်ခုမှာ () -
// ဖန်တီး mysqli ဆက်
$conn = mysqli_connect('localhost', 'username', 'password', 'mydb');
<p>// အထူးအက္ခရာများမှလွတ်မြောက်ရန်<br>
$username = mysqli_real_escape_string($conn, $_POST['username']);<br>
$password = mysqli_real_escape_string($conn, $_POST['password']);</p>
<p>// ကရိယာတန်းဆာ SQL မေးမြန်း<br>
$query = "INSERT INTO users (username, password) VALUES('$username', '$password')";<br>
mysqli_query($conn, $query);<br>
Preprocessing ထုတ်ပြန်ချက်များ, စစ်ထုတ်ခြင်းလုပ်ဆောင်ချက်များနှင့်အထူးအက္ခရာများမှလွတ်မြောက်ရန် developer များက SQL Injection Attacks ကိုထိရောက်စွာတားဆီးနိုင်သည်။ သို့သော်ဆော့ (ဖ်) ဝဲကိုအချိန်တန်လျှင်အချိန်မီမွမ်းမံခြင်းနှင့်အလားအလာရှိသောအားနည်းချက်များကိုထိန်းသိမ်းခြင်းသည်အလွန်အရေးကြီးသည်။ ထို့ကြောင့် developer များကသူတို့၏လျှောက်လွှာများ၏လုံခြုံရေးကိုသေချာစေရန်၎င်းတို့၏ကုဒ်များကိုပုံမှန်ပြန်လည်သုံးသပ်ခြင်းများကိုပုံမှန်ပြုလုပ်သင့်သည်။
အတိုချုပ်ဆိုရလျှင် Web developer များအသုံးပြုသူ input ကိုပြုပြင်သည့်အခါအချက်အလက်များ၏လုံခြုံရေးအတွက်အလွန်အရေးကြီးသည်။ မှန်ကန်သော filtering နှင့်စိစစ်အတည်ပြုနည်းလမ်းများအသုံးပြုခြင်းသည်လျှောက်လွှာ၏လုံခြုံရေးကိုပိုမိုကောင်းမွန်စေရုံသာမက SQL Injection ၏အန္တရာယ်ကိုများစွာလျှော့ချနိုင်သည်။ ဤဆောင်းပါးသည် SQL injection ကိုကာကွယ်ရန် PHP developer များအတွက်အသုံးဝင်သောအကြံဥာဏ်အချို့ပေးမည်ဟုမျှော်လင့်ပါသည်။