လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> HTTP_Build_Qquery နှင့် filter_input သည်လုံခြုံရေးလိုအပ်ချက်များနှင့်ကိုက်ညီသော query strings များကိုထုတ်လုပ်ရန်ပေါင်းစပ်ထားသည်

HTTP_Build_Qquery နှင့် filter_input သည်လုံခြုံရေးလိုအပ်ချက်များနှင့်ကိုက်ညီသော query strings များကိုထုတ်လုပ်ရန်ပေါင်းစပ်ထားသည်

M66 2025-06-22

PHP Development တွင် URL စုံစမ်းမှု strings သည်အလွန်အသုံးများသောအလုပ်တစ်ခုဖြစ်သည်။ http_build_Query () သည် arrays များကို URL-encoded query strings များအဖြစ်လျင်မြန်စွာပြောင်းလဲစေသောအစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ သို့သော်လက်တွေ့ကျသောအပလီကေးရှင်းများ၌ကျွန်ုပ်တို့သည်များသောအားဖြင့်အသုံးပြုသူထည့်သွင်းမှုမှ parameters တွေကိုရယူရန်လိုအပ်သည်။ ဤသွင်းအားစုများကိုအန္တရာယ်ကင်းစွာလုပ်ဆောင်နိုင်ရန်အတွက် filter_input () သည်မရှိမဖြစ်လိုအပ်သော function တစ်ခုဖြစ်သည်။ နှစ်ခုကိုအတူတကွအသုံးပြုခြင်းသည်စွမ်းဆောင်ရည်ကိုသေချာစေရန်နှင့် XSS နှင့်ဆေးထိုးခြင်းကဲ့သို့သောပြ problems နာများကိုကာကွယ်နိုင်သည်။

1 ။ မိတ်ဆက် http_build_Query သို့မိတ်ဆက် ()

http_build_Query () သည် array တစ်ခုယူပြီး၎င်းကို RFC 3986 encoding format နှင့်ကိုက်ညီသော URL စုံစမ်းမှု string တစ်ခုသို့ပြောင်းလဲသည်။ ဥပမာအားဖြင့်:

<Code> $ Params = ['PHP' => 'PHP', 'PHP' =>> 2];

$ querystring = http_build_Query ($ params);
// output: search = php & page = 2
</ code>

ဤလုပ်ဆောင်ချက်သည် splicing query strings များအတွက်အလွန်သင့်လျော်သည်, လမ်းကြောင်းနှင့်အတူအသုံးပြုသည့်အခါခုန် links များကိုလျင်မြန်စွာတည်ဆောက်နိုင်သည်။

<code> $ url = 'https://m66.net/search.php?' ။ $ querystring; </ code>

2 ။ TILE_INPATE ၏အခန်းကဏ်။ ()

သုံးစွဲသူ input ကို processing လုပ်တဲ့အခါမှာ ဒေါ်လာ _get သို့မဟုတ် $ _post ကို တိုက်ရိုက်မသုံးနိုင်ပါ, filter_input () သည် input အချက်အလက်များကိုရယူရန်နှင့် filter လုပ်ရန် standard interface တစ်ခုပေးသည်။

<code> $ search = filter_input (input_get, 'Search', filter_sanitize_string); $ စာမျက်နှာ = filter_input (input_get, 'page', filter_valka_int); </ code>

အထက်ပါကုဒ်တွင် ရှာဖွေရေး parameter သည်ရှင်းလင်းသောစာသားထဲသို့သန့်ရှင်းရေးလုပ်ပြီး စာမျက်နှာ parameter သည်ကိန်းဂဏန်းတစ်ခုအဖြစ်အတည်ပြုသည်။

3 ။ နှစ်ခုလုံးကိုသုံးပါ

အသုံးပြုသူထည့်သွင်းမှုအပေါ် အခြေခံ. redirect link ကိုတည်ဆောက်လိုသည်ဆိုပါစို့။ URL မှ parameters တွေကိုထုတ်ယူရန်, ၎င်းကိုစစ်ဆေး။ သန့်ရှင်းရေးလုပ်ရန်မျှော်လင့်ပါသည်။ ဒီနေရာမှာငါတို့လုပ်နိုင်တယ် -

<Code> $ params = [];

$ search = filter_input (input_get, search ', filter_sanitize_string);
လျှင် ($ Search! == null && $ search! == fiss {
$ params ['search'] = $ search;
}

$ စာမျက်နှာ = filter_input (input_get, 'page', filter_valka_int);
အကယ်. ($ စာမျက်နှာ! == null & $ စာမျက်နှာ! == fiss)
$ params ['page'] = $ စာမျက်နှာ;
}

$ querystring = http_build_Query ($ params);

$ redirecturl = ' https://m66.net/results.php ?' ' ။ $ querystring;

// redirection ကို redirection (ဥပမာ, အမှန်တကယ်ထုတ်လုပ်မှုပတ်ဝန်းကျင်တွင်စိစစ်အတည်ပြုခြင်းမရှိဘဲတိုက်ရိုက်မခုန်ပါနှင့်)
header ('တည်နေရာ:' ။ $ redirecturl);
ထွက်ပေါက်;
</ code>

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

4 ။ XSS နှင့်ဆေးထိုးတိုက်ခိုက်မှုများဆန့်ကျင်ကာကွယ်ရေး

အသုံးပြုသူမှထည့်သွင်းထားသောစိတ်မချရသောအကြောင်းအရာများတွင် <script> Alert (1) </ script> ကဲ့သို့သောအန္တရာယ်ရှိသော script များပါ 0 င်နိုင်သည်။ Filter_sanitize_String and filter_valate_ * စီးရီးများကို filter_initize_String နှင့် filter_valate_ * စီးရီးများကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်အန္တရာယ်ရှိသောဇာတ်ကောင်များကိုစစ်ထုတ်နိုင်သည်သို့မဟုတ်မျှော်လင့်ချက်များနှင့်မကိုက်ညီသောအချက်အလက်အမျိုးအစားများကိုငြင်းပယ်နိုင်သည်။

ထို့အပြင်ဆေးထိုးအလားအလာကို http_build_Query () သို့အတည်ပြုထားသော parameters တွေကိုသာဖြတ်သန်းခြင်းဖြင့်ထပ်မံလျှော့ချနိုင်သည်။

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

http_build_query () ကို အသုံးပြုခြင်းသည် query strings တည်ဆောက်ရန်အဆင်ပြေသော်လည်းအချက်သည် parameters များကိုအပြည့်အ 0 အတည်ပြုပြီးဖြစ်သည်။ ၎င်းကို filter_input () နှင့်ပေါင်းစပ်ခြင်း () သည် code ၏အရည်အသွေးကိုတိုးတက်အောင်မလုပ်နိုင်ပါ။ အထူးသဖြင့်အသုံးပြုသူ input ကို link များထုတ်လုပ်ရန်လိုအပ်ပါကဤပေါင်းစပ်နည်းသည် developer များအတွက်စံသတ်မှတ်ချက်တစ်ခုဖြစ်လာသင့်သည်။