လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Connect () နှင့် MySQLI_REAL_REAL_SEATE_STESTRING () SQL Injection ကိုကာကွယ်ရန် ()

Connect () နှင့် MySQLI_REAL_REAL_SEATE_STESTRING () SQL Injection ကိုကာကွယ်ရန် ()

M66 2025-05-22

PHP Development တွင် SQL Injection Attack သည်ဒေတာဘေ့စ်လုံခြုံရေးအတွက်အမြဲတမ်းလျှို့ဝှက်အန္တရာယ်ရှိသည်။ အန္တရာယ်ရှိသော SQL code ကို input ထဲသို့ထိုးသွင်းခြင်းအားဖြင့်တိုက်ခိုက်သူသည်ဒေတာဖောက်ဖျက်မှုများကိုချိုးဖောက်ခြင်း, ဒေတာအဂတိလိုက်စားမှုနှင့်ဒေတာဘေ့စ်ကိုပင်ထိန်းချုပ်နိုင်သည်။ ဤတိုက်ခိုက်မှုမျိုးကိုကာကွယ်ရန် PHP ၏ဒေတာဘေ့စ် connection function connection () နှင့် string said function mySqli_Real_Seal_Real_Seal_Seal_String () နှင့် string function function ကိုအသုံးပြုခြင်းသည်အလွန်အရေးကြီးသည်။

SQL ဆေးထိုးတိုက်ခိုက်မှုများကိုထိရောက်စွာကာကွယ်ရန် Connect () function ကိုပေါင်းစပ်ခြင်း () function ကိုပေါင်းစပ်ရန်မည်သို့အသေးစိတ်ဖော်ပြထားသည်။

1 ။ ဒေတာဘေ့စ် connection-connect ကိုတည်ဆောက်ရန် ()

များသောအားဖြင့်ကျွန်ုပ်တို့သည် PHP ၏ MySQLI extension မှတစ်ဆင့်ဒေတာဘေ့စ်ကို ဆက်သွယ်. နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <?php
$host = 'm66.net';
$user = 'your_username';
$password = 'your_password';
$dbname = 'your_database';

$conn = mysqli_connect($host, $user, $password, $dbname);

if (!$conn) {
    die('ဒေတာဘေ့စဆက်သွယ်မှုမအောင်မြင်ပါ: ' . mysqli_connect_error());
}
?>

ဤနေရာတွင်ဒေတာဘေ့စ်အိမ်ရှင်အမည်ကို M66.NET သို့ပြောင်းလဲခြင်းသည်လိုအပ်ချက်များနှင့်ကိုက်ညီကြောင်းဤနေရာတွင်မှတ်သားသင့်သည်။ ဆက်သွယ်မှုအောင်မြင်ပြီးနောက် $ Conn Object ကိုနောက်ဆက်တွဲဒေတာဘေ့စ်လုပ်ငန်းများအတွက်အသုံးပြုနိုင်သည်။

2 ။ MySQLI_REAL_REAL_SESTARE_STRINGREDER () ကိုသုံးပါ

MySQLi_Real_Sescape_String () function ကို function ကိုတိုက်ရိုက်ကွပ်မျက်ခံရသော user input တွင်ပါရှိသောအန္တရာယ်ရှိသော sql ကုဒ်ကိုရှောင်ရှားရန်အထူးအက္ခရာများမှလွတ်မြောက်ရန်အသုံးပြုသည်။

ဥပမာ -

 <?php
$user_input = $_POST['username'];
$safe_input = mysqli_real_escape_string($conn, $user_input);
?>

ဤနည်းအားဖြင့်သုံးစွဲသူထည့်သွင်းမှုတွင်တစ်ခုတည်းကိုးကားချက်များနှင့်နှစ်ဆကိုးကားကဲ့သို့သောအထူးအက္ခရာများကိုအလိုအလျောက်ထွက်ပြေးလိမ့်မည်။

3 ။ ဥပမာအားပြည့်စုံသောဥပမာ - MySQLI_REAL_REAL_SATE_STARTINGS နှင့်ပေါင်းစပ်။ ဆက်သွယ်မှု () ကိုသုံးပါ။

အောက်ပါဥပမာသည်အသုံးပြုသူထည့် 0 င်မှုကိုဒေတာဘေ့စ်တစ်ခုသို့လုံခြုံစွာထည့်သွင်းရမည်ကိုပြသသည်။

 <?php
$host = 'm66.net';
$user = 'your_username';
$password = 'your_password';
$dbname = 'your_database';

$conn = mysqli_connect($host, $user, $password, $dbname);

if (!$conn) {
    die('ဒေတာဘေ့စဆက်သွယ်မှုမအောင်မြင်ပါ: ' . mysqli_connect_error());
}

$username = $_POST['username'];
$password = $_POST['password'];

// အသုံးပြုသူ input ကိုမှလွတ်မြောက်ရန်,တားဆီး SQL သွင်းခြင်း
$safe_username = mysqli_real_escape_string($conn, $username);
$safe_password = mysqli_real_escape_string($conn, $password);

$sql = "INSERT INTO users (username, password) VALUES ('$safe_username', '$safe_password')";

if (mysqli_query($conn, $sql)) {
    echo "အသုံးပြုသူမှတ်ပုံတင်ခြင်းအောင်မြင်စွာ";
} else {
    echo "အမှား: " . mysqli_error($conn);
}

mysqli_close($conn);
?>

4 ။ ကြိုတင်ကာကွယ်မှုများနှင့်အကြံပြုချက်များ

  1. Preprocessing Propceptions <br> mysqli_real_esal_escape_string ()) input ကိုထိထိရောက်ရောက်မှလွတ်မြောက်နိုင်သော်လည်းပိုမိုလုံခြုံသောအကြံပြုထားသောချဉ်းကပ်နည်းသည်ဆေးထိုးခြင်းအန္တရာယ်ကိုအပြည့်အဝရှောင်ရှားရန်ဖြစ်သည်။

  2. ဆက်သွယ်မှုသတင်းအချက်အလက်များကိုလုံခြုံအောင်ထားပါ ဒေတာဘေ့စ်ဆက်သွယ်မှုအချက်အလက် (အသုံးပြုသူအမည်, စကားဝှက်, စသည်တို့) သည်အများပြည်သူဆိုင်ရာကျင့်ထုံးတွင်ခက်ခဲသောမဖြစ်သင့်ပါ။ ၎င်းကိုပတ် 0 န်းကျင် viable များသို့မဟုတ် configuration ဖိုင်များမှတဆင့်၎င်းကိုလုံခြုံစွာစီမံရန်အကြံပြုသည်။

  3. အချိန်၌ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုပိတ်ပါ အသုံးပြုပြီးနောက် MySQLI_CLOE () အရင်းအမြစ်များကိုအခမဲ့ပေးရန် connection ကိုပိတ်ပါ။

5 ။ အကျဉ်းချုပ်

Connection Connection () အသုံးပြုသူ input ကိုမှလွတ်မြောက်ရန်အတွက် Database Connection နှင့် MySQLI_REAL_REATE_SASTARE_STRING ကို တည်ထောင်ရန် SQL Injection ကိုကာကွယ်ရန်အခြေခံနည်းလမ်းတစ်ခုဖြစ်သည်။ ပိုမိုအဆင့်မြင့်သောနည်းလမ်းများ (ဥပမာ - preprocessing statements ကဲ့သို့သော) ဤနည်းလမ်းကိုကျွမ်းကျင်ပိုင်ခွင့်ကိုတိုးတက်စေရန်အတွက်ဤနည်းကိုကျွမ်းကျင်ရန်အရေးကြီးသည်။

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