လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Get_Magic_quotes_GPC function ကိုဘယ်လိုသုံးရမလဲဆိုတာကို Magic Quickes ကိုဖွင့်ထားသလားဆိုတာဆုံးဖြတ်ရန်။ အကောင်းဆုံးအလေ့အကျင့်ခွဲခြမ်းစိတ်ဖြာ

Get_Magic_quotes_GPC function ကိုဘယ်လိုသုံးရမလဲဆိုတာကို Magic Quickes ကိုဖွင့်ထားသလားဆိုတာဆုံးဖြတ်ရန်။ အကောင်းဆုံးအလေ့အကျင့်ခွဲခြမ်းစိတ်ဖြာ

gitbox 2025-06-10

PHP ၏သမိုင်းတွင် Magic ကိုးကားချက်များသည် SQL Injection ကဲ့သို့သောလုံခြုံရေးပြ issues နာများကိုကာကွယ်ရန်အတွက်အချက်အလက်များကိုအလိုအလျောက်ထည့်သွင်းခြင်း, post နှင့် cookie တို့ကိုအလိုအလျောက် ထည့်သွင်းခြင်း , ဘာဖြစ်လို့လဲဆိုတော့အဆင်ပြေအောင်ရှုပ်ထွေးမှုကအဆင်ပြေတာထက်ပိုသောကြောင့်မှော်ဆန်ကိုးကားချက်များကို PHP 5.4.0 မှလုံးဝဖယ်ရှားပစ်ခဲ့သည်။

မည်သို့ပင်ဆိုစေကာ, အချို့သောစနစ်များကိုထိန်းသိမ်းထားသည့်အခါ PHP 5.3 နှင့်အောက်ကိုအောက်တွင်တွေ့နိုင်သည်။ မှော်ကိုးကားချက်များကိုဖွင့်ခြင်းရှိမရှိဆုံးဖြတ်ရန်အလွန်အရေးကြီးသည်။ ဒီဆောင်းပါးက Get_magic_Quotes_GPC () function ကိုဘယ်လိုသုံးရမယ်ဆိုတာမိတ်ဆက်ပေးပြီးသက်ဆိုင်ရာအကောင်းဆုံးအလေ့အကျင့်အကြံပြုချက်ပေးဖို့ဘယ်လိုအသုံးပြုရမလဲ။

1 ။ နိဒါန်း get_magic_quotes_gpc () function ကိုမိတ်ဆက်

Get_Magic_quotes_GPC () သည် Magic_Quotes_GPC ကို ဖွင့်ထားခြင်းရှိမရှိဆုံးဖြတ်ရန် PHP မှပါ 0 င်သော function function ဖြစ်သည်။ ၎င်း၏ပြန်လာသောတန်ဖိုးသည် boolean ဖြစ်သည်။

  • မှော်ကိုးကားချက်များကိုဖွင့်ထားကြောင်းညွှန်ပြရန် မှန်ကန်သော ပြန်လာရန်။

  • မှားယွင်းသော အဓိပ္ပာယ်ကိုပြန်ခြင်းဆိုသည်မှာမှော်ကိုးကားချက်များကိုပိတ်ထားခြင်းဖြစ်သည်။

နမူနာကုဒ်:

 if (get_magic_quotes_gpc()) {
    echo "မှော်ကိုးကားအပေါ်လှည့်နေကြသည်";
} else {
    echo "မှော်ကိုးကားပိတ်လိုက်တယ်";
}

function ကို run သောအခါ function ကို run သောအခါအမှားမက်ဆေ့ခ်ျတစ်ခုရရှိပါကသင်၏ PHP ဗားရှင်းသည် 5.4 ထက်ပိုမိုမြင့်မားပြီးမှော်ကိုးကားချက်များကိုဖယ်ရှားပစ်လိုက်သည်ဟုဆိုလိုသည်။

2 ။ အဘယ်ကြောင့်မှော်ကိုးကားစစ်ကြောစီရင်ဖို့သင်လိုအပ်သနည်း

မှော်ကိုးကားခြင်း၏မူလရည်ရွယ်ချက်သည်ကောင်းမွန်သော်လည်း၎င်းသည်အချက်အလက်များကိုထပ်ခါတလဲလဲလွတ်မြောက်စေနိုင်သည်။ developer များကစစ်ဆင်ရေးဝန်းကျင်အပေါ် အခြေခံ. stripslashes () ကို လက်ဖြင့်ကိုင်တွယ်ခြင်းရှိမရှိကိုပုံမှန်တရားစီရင်ရန်လိုအပ်သည်။ ဥပမာအားဖြင့်:

 $user_input = $_POST['username'];

if (get_magic_quotes_gpc()) {
    $user_input = stripslashes($user_input);
}

ဤကုဒ်သည် $ user_input ၏အချက်အလက်များသည်မှော်ကိုးကားချက်များကြောင့်မှော်ကိုးကားမှုများကြောင့်မှော်ကိုးကားချက်များကြောင့်ပြန်လည်နေရာချထားနိုင်မည်မဟုတ်ကြောင်းသေချာစေသည်။

3 ။ အကောင်းဆုံးအလေ့အကျင့်: အသုံးပြုသူထည့်သွင်းမှု၏စည်းလုံးမှုအပြောင်းအလဲနဲ့

အကြံပြုချက်အများဆုံးနည်းလမ်းမှာအချိန်တစ်ခုစီကိုတရားစီရင်ခြင်းထက် GPC အချက်အလက်အားလုံးကို 0 ယ်ယူရန်ဖြစ်သည်။

 function strip_magic_quotes(&$array) {
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            strip_magic_quotes($array[$key]);
        } else {
            $array[$key] = stripslashes($value);
        }
    }
}

if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
    strip_magic_quotes($_GET);
    strip_magic_quotes($_POST);
    strip_magic_quotes($_COOKIE);
}

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

4 ။ အကြံပြုချက်များ - Magic Quote Traps ကိုရှောင်ရှားရန် PHP ကိုအဆင့်မြှင့်တင်ပါ

လိုက်ဖက်ညီမှုသည်အထက်ပါနည်းလမ်းများကို အသုံးပြု. ကိုင်တွယ်နိုင်သော်လည်း အကောင်းဆုံးဖြေရှင်းနည်းမှာ Php ဗားရှင်းကိုအဆင့်မြှင့်တင်ရန်ဖြစ်သည် ။ ခေတ်သစ် PHP framework (ဥပမာ Laravel, Symfony စသည်တို့) (ဥပမာ - symfony စသည်တို့) မှော်ကိုးကားခြင်းများကိုမထောက်ခံပါ။ ဒေတာစစ်ထုတ်ခြင်းနှင့်လုံခြုံရေးထိန်းချုပ်မှုများအတွက်ပိုမိုပြည့်စုံသောနည်းလမ်းများရှိသည်။

  • filter_input () နှင့်အခြား input filter function များကိုသုံးပါ။

  • SQL Injection ကိုကာကွယ်ရန် PDO Binding Poldo ကိုအသုံးပြုပါ။

  • HTMLSpecialchars () ကို HTML output အတွက်သုံးပါ။

5 ။ အကြံပြုထားသည့်အရန်ကိရိယာများကို debugging debugging

PHP စနစ်ဟောင်းကို debging လုပ်သည့်အခါ, လက်ရှိပတ်ဝန်းကျင်ကိုမှော်ကိုးကားချက်များနှင့်အတူဖွင့်ခြင်းရှိမရှိကိုအလျင်အမြန်ဆုံးဖြတ်ရန်ရိုးရိုးရှင်းရှင်း debugging script ကိုသင်အသုံးပြုနိုင်သည်။

 echo '<pre>';
echo 'magic_quotes_gpc: ' . (get_magic_quotes_gpc() ? 'ON' : 'OFF') . PHP_EOL;
echo 'Sample $_GET: ' . print_r($_GET, true);
echo '</pre>';

ဇာတ်ညွှန်းကိုနေရာချထားပြီးနောက် URL ကိုကြည့်ပါ။

 http://gitbox.net/debug.php?name=O\'Reilly

သင် output ကိုမြင်လျှင်:

 name => O\\'Reilly

ဆိုလိုသည်မှာမှော်ကိုးကားမှုသည်အကျိုးသက်ရောက်မှုကိုရရှိစေသည်ဟုဆိုလိုသည်