လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် Real_escape_String_String function နှင့် MySQLI extension ကိုနိဒါန်းနိဒါန်း

PHP တွင် Real_escape_String_String function နှင့် MySQLI extension ကိုနိဒါန်းနိဒါန်း

gitbox 2025-05-27

Web Development အတွက် PHP ကိုအသုံးပြုသောအခါ, SQL Inject ကဲ့သို့သောလုံခြုံရေးဆိုင်ရာကိစ္စရပ်များမှကာကွယ်ရန်ကျွန်ုပ်တို့သည်အသုံးပြုသူမှထည့်သွင်းထားသောအချက်အလက်များနှင့်သင့်လျော်သောထွက်ပြေးလာသူများကိုလုပ်ဆောင်ရန်လိုအပ်သည်။ MySQL databases များကိုအသုံးပြုသောအခါ PHP ၏ MySQLI extension သည် strings မှ ထွက်ပြေးတိမ်းရှောင် လေ့ရှိပြီးဒေတာဘေ့စ်လုပ်ငန်းများ၏လုံခြုံရေးကိုတိုးတက်အောင်ပြုလုပ်လေ့ရှိသည်။

1 ။ MySQLI extension ကိုနိဒါန်း

MySQLI (MySQL သည်တိုးတက်လာသည်) extension သည် MySQL database များနှင့်အပြန်အလှန်ဆက်သွယ်မှုအတွက် PHP တွင် extension module တစ်ခုဖြစ်သည်။ MySQL extensions များနှင့်နှိုင်းယှဉ်ပါက MySQLI သည် ကြိုတင်ပြင်ဆင်ထားသည့်ထုတ်ပြန်ချက်များ, ငွေပေးချေမှုထိန်းချုပ်မှုနှင့်ပိုမိုပြည့်လျှံသောအမှားကိုင်တွယ်မှုယန္တရားကိုထောက်ပံ့ခြင်းစသည့်ပိုမိုကောင်းမွန်သောလုပ်ဆောင်မှုများကိုပြုလုပ်သည်။

MySQLI extension ကိုအသုံးပြုရန်, သင်ပထမ ဦး ဆုံးဒေတာဘေ့စ် connection အရာဝတ်ထုကိုအောက်ပါအတိုင်းဖန်တီးရန်လိုအပ်သည် -

<code> $ host = 'localhost'; $ user = 'db_user'; $ စကားဝှက် = 'DB_Password', $ database = 'Test_DB',

$ can = MySQLI ($ host, $ အသုံးပြုသူ, $ password, $ database);

IF ($ conn-> connect_error) {
သေဆုံး ('ဆက်သွယ်မှုသည်မအောင်မြင်ပါ။ ' ။ $ Conn-> Connect_ERRORR);
}
</ code>

ဤကုဒ်သည် MySQL server သို့ဆက်သွယ်မှုတစ်ခုတည်ဆောက်ရန်နှင့်ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန်ဤကုဒ်သည် MySQLI Constructor ကိုအသုံးပြုသည်။

2 ။ Real_escape_String function ကိုအသုံးပြုခြင်း

Real_escape_String သည် MySQLI အရာဝတ်ထုများမှ SQL ထုတ်ပြန်ချက်များတွင်အသုံးပြုသောကြိုးများမှလွတ်မြောက်ရန်နည်းလမ်းတစ်ခုဖြစ်သည်။ ၎င်းသည် SQL syntax ကိုဖျက်ဆီးခြင်းမှကာကွယ်ရန်အထူးအက္ခရာများ (ဥပမာကိုးကားချက်များ, backslashes စသည်တို့) ကိုကာကွယ်နိုင်သည်။

၎င်း၏ပုံမှန်အသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -

<code> $ user_input = "O'Reilly"; $ Safe_INPUT = $ conn-> Real_escape_String ($ user_input); $ sql = "Selection = '$ Safe_INPPPATE" ဆိုတဲ့အသုံးပြုသူတွေဆီကနေ Select * " $ ရလဒ် = $ conn-> query ($ sql); </ code>

ဤဥပမာတွင်အသုံးပြုသူမှ O'Reilly 0 င်ရောက်ခြင်းသည်မလွတ်မြောက်ပါက SQL ကြေငြာချက်တွင်အမှားတစ်ခုဖြစ်ပေါ်စေလိမ့်မည်သို့မဟုတ်လုံခြုံရေးပြ problems နာများပင်ဖြစ်ပေါ်စေလိမ့်မည်။ Real_escape_String Method သည် One One One One One One One One ကိုအလိုအလျောက်လွတ်မြောက်စေပြီးတရားဝင်နှင့်လုံခြုံစိတ်ချရသော SQL ထုတ်ပြန်ကြေငြာချက်ကိုတည်ဆောက်သည်။

3 ။ မှတ်စုဖို့အရာ

  1. ဒေတာဘေ့စ connection ပြီးနောက်အသုံးပြုရမည်ဖြစ်သည်
    Real_escape_String သည် လက်ရှိဆက်သွယ်မှု၏ဇာတ်ကောင်အစုပေါ်တွင်မူတည်သည်။ ထို့ကြောင့်ဆက်သွယ်မှုအောင်မြင်ပြီးနောက်ဟုခေါ်ရမည်။

  2. Preprocessing ထုတ်ပြန်ချက်များအတွက်အစားထိုးနှင့်ညီမျှသည်မဟုတ် Real_escape_String သည် လုံခြုံရေးအချို့ကိုပေးနိုင်သော်လည်း၎င်းသည်ကြိုတင်ပြင်ဆင်ထားသည့်ထုတ်ပြန်ချက်များကိုလုံးဝ အစားထိုး. မရပါ။ Preprocessing ထုတ်ပြန်ချက်များသည် SQL Injection ကိုကာကွယ်ရန်အလုံခြုံဆုံးနည်းလမ်းဖြစ်သည်။

  3. ဇာတ်ကောင်အစုံတသမတ်တည်းဖြစ်ရန်လိုအပ်သည် PHP မှအသုံးပြုသော PHP နှင့်ဒေတာဘေ့စ်အစပိုင်းတွင်ဖော်ပြပါ (UTF8MB4 ကဲ့သို့သော) သည်တသမတ်တည်းဖြစ်ကြောင်းသေချာပါစေ။

4 ။ HTML ပုံစံများကိုပေါင်းစပ်ခြင်း၏လက်တွေ့ကျသောဥပမာများ

အသုံးပြုသူ input ကိုလက်ခံရရှိရန်နှင့်၎င်းကို real_escape_string မှတဆင့်လုပ်ဆောင်ရန် HTML form ကိုအသုံးပြုခြင်း၏ဥပမာတစ်ခုဖြစ်သည်။

<code> & lt; ပုံစံနည်းလမ်း = "post" action = "https://gitbox.net/process.php" & GT; အသုံးပြုသူအမည်: & ဒု; input type = "text" အမည် = "Username" & GT; & LT; input type = "တင်ရန်" တန်ဖိုး = "Submit" & GT; & lt; / form & gt; </ code>

Procession.php တွင်လုပ်ငန်းစဉ်။

<code> $ can = MySQLI ('localhost', 'userhost', 'Password', 'Database',

IF ($ conn-> connect_error) {
သေဆုံး ('ဆက်သွယ်မှုသည်မအောင်မြင်ပါ။ ' ။ $ Conn-> Connect_ERRORR);
}

$ username = $ _post ['username'];
$ safe_username = $ conn-> Real_escape_String ($ username);

$ sql = "username = '$ safe_username' 'အသုံးပြုသူများမှရွေးချယ်ပါ။
$ ရလဒ် = $ conn-> query ($ sql);

အကယ်. ($ ရလဒ် && $ ရလဒ်> num_row> 0)
ECHO "အသုံးပြုသူသည်ရှိပြီးသားဖြစ်သည်";
} အခြား
Echo "အသုံးပြုသူမတည်ရှိပါဘူး";
}
</ code>

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

MySQLI :: Real_escape_String သည် SQL Injection ကိုကာကွယ်ရန် PHP တွင်အရေးကြီးသောကိရိယာတစ်ခုဖြစ်သည်။ အသုံးပြုသူ input တွင်အထူးအက္ခရာများမှလွတ်မြောက်ခြင်းဖြင့် SQL ထုတ်ပြန်ချက်များအားတရားဝင်ခွင့်ပြုချက်ကိုကာကွယ်ပေးသည်။ သို့သော်ပိုမိုလုံခြုံသောအတွက် developer များကကြိုတင်ပြင်ဆင်ထားသည့်ထုတ်ပြန်ချက်များကိုအသုံးပြုမှုကို ဦး စားပေးသင့်သည်။ Real_escape_String ၏အခြေခံအသုံးပြုမှုကိုနားလည်ပြီးနောက်အသုံးပြုသူ input ကိုပိုမိုယုံကြည်စိတ်ချစွာလုပ်ဆောင်နိုင်ပြီးဒေတာဘေ့စ်နှင့်လုံလုံခြုံခြုံနှင့်ဆက်သွယ်နိုင်သည်။

  • သက်ဆိုင်သောတက်(ဂ်)များ:

    mysqli