လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> get_magic_quotes_gpc function သည်မှန်ကန်သည့်အခါဒေတာနှစ်ဆလွတ်မြောက်မှုကိုမည်သို့ရှောင်ရှားရမည်နည်း။

get_magic_quotes_gpc function သည်မှန်ကန်သည့်အခါဒေတာနှစ်ဆလွတ်မြောက်မှုကိုမည်သို့ရှောင်ရှားရမည်နည်း။

gitbox 2025-06-10

အစောပိုင်း PHP ဗားရှင်းများတွင် Get_magic_quotes_GPC () function ကို အသုံးပြု. Magic_quotes_GPC configuration item enable လုပ်မရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။ ဤ ပစ္စည်း သည်ဤအချက်ကို 0 င် ရောက်သောအခါ PHP သည် SQL နှင့် Backslashes နှင့် backslashes တို့အတွက် backslashes မတိုင်မီက backslash များကိုအလိုအလျောက်မှအလိုအလျောက်မှအလိုအလျောက်မှလွတ်မြောက်လိမ့်မည်

ပြနာဖော်ပြချက်

Magic_Quotes_GPC ကိုဖွင့်ထားသည့်အခါအသုံးပြုသူမှတင်ပြသောအချက်အလက်များကို Essual Chrame နှင့်အလိုအလျောက်ထည့်သွင်းထားသည်။ အကယ်. developer သည် Addslashes () နှင့်အခြားလုပ်ဆောင်မှုများကိုအသုံးပြုပါကအချက်အလက်များကိုလက်ခံရရှိပြီးနောက်ဤသွင်းအားစုများကိုလုပ်ဆောင်ရန်နှင့်အခြားလုပ်ဆောင်မှုများကိုလုပ်ဆောင်ရန်နှင့်အခြားလုပ်ဆောင်မှုများကိုလုပ်ဆောင်ရန်အတွက်ပြ problems နာများကိုနှစ်ဆလွတ်မြောက်စေလိမ့်မည်။ ဥပမာအားဖြင့်, မူလထည့်သွင်း string ကိုဖြစ်ပါတယ်:

 I'm a user.

ပထမဆုံးအကြိမ် Magic_quotes_GPC မှအလိုအလျောက်ထွက်ပြေးလွတ်မြောက်သည် -

 I\'m a user.

သင်ဤအချိန်တွင်ထပ် addslashes () ကို အသုံးပြုပါက:

 I\\'m a user.

ထို့နောက်ဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားသောအကြောင်းအရာသည်သုံးစွဲသူ၏မူလရည်ရွယ်ချက်နှင့်ကိုက်ညီမှုမရှိပါ။

အဖေြ

1 ။ Magic_Quotes_GPC အပေါ်ရှိမရှိဆုံးဖြတ်ရန်

နှစ်ဆလွတ်မြောက်မှုကိုရှောင်ရှားနိုင်ရန် developer များက Magic_Quotes_GPC ကို ဖွင့်ထားခြင်းရှိမရှိကို ဦး စွာဆုံးဖြတ်ရန်လိုအပ်သည်။ Enable လုပ်ထားရင်ပထမ ဦး စွာဒေတာကိုပြောင်းပြန်လုပ်ခြင်းကိုပြုလုပ်ပြီးလိုအပ်သည့်အတိုင်းလက်စွဲစာအုပ်ထွက်ပေါ်လာခြင်းရှိမရှိဆုံးဖြတ်ပါ။

2 ။ stripslashes () ကိုအလိုအလျောက်ဆက်ပြောသည် backslashes ဖယ်ရှားပစ်ရန်

အသုံးပြုသူမှ array input ကိုအချက်အလက်အားလုံးကိုမှန်ကန်စွာဖယ်ရှားပစ်ရန်သေချာစေရန်ပြင်ဆင်ခြင်းကိုပြုပြင်နိုင်သည်။

ဒီမှာနမူနာကုဒ်တစ်ခုပါ။

<code> function clearininput ($ ဒေတာ) {is_array ($ ဒေတာ)) {ifarray ($ ဒေတာ)) {return array_map ('clearinput', $ ဒေတာ); } အခြား {Report Stripslashes ($ ဒေတာ); }

if (get_magic_quotes_gpc ()) {
$ _GET = စင်ကြယ်ခြင်း ($ _ get);
$ _post = စင်ကြယ်သန့်ရှင်းမှု ($ _ post);
$ _cookie = စင်ကြယ်ခြင်း ($ _ cookie);
}
</ code>

ဤဥပမာတွင်ကျွန်ုပ်တို့သည် စင်ကြယ်သန့်ရှင်းဆုံး () function ကိုသတ်မှတ်ခြင်း, မလိုအပ်သောဇာတ်ကောင်များဖယ်ရှားရန်အတွက်တန်ဖိုးတစ်ခုစီကိုရရှိသော censin ရိယာတစ်ခုစီကိုပြန်လည်တသင့်စေသည့် function ကိုသတ်မှတ်သည်။ Get_magic_quotes_GPC () စစ်မှန်သော , hyperglogal array, $ _get , $ _post, $ _post , $ _cookie ; $ _cookie;

3 ။ အကြံပြုထားသည့်: ခေတ်သစ် PHP ကိုသုံးပါ

သတိပြုသင့်သည်မှာ Magic_quotes_GPC ကို PHP 5.4.0 တွင်တန်ဖိုးထားခဲ့ပြီး PHP 7.0.0 တွင်လုံးဝဖယ်ရှားပစ်ခဲ့သည်။ ထို့ကြောင့်ခေတ်သစ် PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဤပြ problem နာသည်မရှိတော့ပါ။ သို့သော်စီမံကိန်းဟောင်းများကိုဆက်လက်ထိန်းသိမ်းထားသည့်အခါသို့မဟုတ်တ ဦး တည်းအမွေစနစ်များကိုကိုင်တွယ်သောအခါ၎င်းတို့နှင့်မည်သို့ဆက်ဆံရမည်ကိုသိရန်လိုအပ်သည်။

အကယ်. သင်သည် PHP ဗားရှင်းအဟောင်းကိုအသုံးပြုနေပြီးအဆင့်မြှင့် တင်. မရပါကစီမံကိန်းကိုစတင်လုပ်ဆောင်ခြင်းမပြုမီသွင်းအားစုများအားလုံးကိုဖြည့်ဆည်းပေးနိုင်ရန်အတွက်စည်းသွင်းမှုအားလုံးကိုသန့်ရှင်းရေးပြုလုပ်ရန်အကြံပြုသည်။

ထို့အပြင် Modern Database Access Methods ကို အသုံးပြု. Parameter Binding ယန္တရားများနှင့်ပေါင်းစပ်ထားသောခေတ်မီဒေတာဘေ့စ်အသုံးပြုမှုနည်းလမ်းများ (ဥပမာ PDO ကဲ့သို့ PDO) ကိုအသုံးပြုခြင်းသည် SQL Injection ကိုတားဆီးနိုင်သည်။ ဥပမာအားဖြင့်:

<code> $ PDO = PDO အသစ် ('MySQL: Host: Host: Host = localhost; dbname = test', 'Password' ',' Password '', $ stmt = $ pdo-> ကြိုတင်ပြင်ဆင်မှု ('Email) ကိုအီးမေးလ် =: အီးမေးလ် =: အီးမေးလ်'); $ stmt-> Execute (['email' => '[email protected]']); </ code>

အပေါ်ကပြထားတဲ့အတိုင်း Parameter Beting သည် SQL ၏ပြ problems နာများကိုအခြေခံကျကျဖြေရှင်းရန်အခြေခံအားဖြင့် SQL ၏တိုက်ရိုက်ခွဲခြားခြင်းကိုရှောင်ရှားသည်။

ကောက်ချက်

Magic_quotes_GPC ၏အလိုအလျောက်မှလွတ်မြောက်မှုယန္တရားသည် "လုံခြုံစိတ်ချရသောလုံခြုံမှု" ဒီဇိုင်းဖြစ်သည်, သို့သော်၎င်းသည်အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုအတွက်ပိုမိုဒုက်ခပေးတတ်သည်။ 4 င်း၏လုပ်ဆောင်မှုကိုနားလည်ခြင်းနှင့်သင့်လျော်သောအပြောင်းအလဲနဲ့နည်းစနစ်များချမှတ်ခြင်းသည်အချက်အလက်များ၏နှစ်ဆလွတ်မြောက်မှုပြ the နာကိုထိရောက်စွာရှောင်ရှားနိုင်သည်။ တစ်ချိန်တည်းမှာပင် Modern PHP ပရိုဂရမ်းတာပါရာဒိုင်းနှင့်ဒေတာဘေ့စ်များကိုအသုံးပြုရန်ကုဒ်၏ထိန်းသိမ်းမှုနှင့်လုံခြုံရေးကိုတိုးတက်စေရန်ဤခေတ်မမီတော့သောအင်္ဂါရပ်များအပေါ်မှီခိုအားထားရန်လည်းအကြံပြုထားသည်။