လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Subdomain အမည်များရရှိရန် Parse_URL ကိုအသုံးပြုသည့်အခါအဘယ်အရာကိုသင်ဂရုပြုသင့်သနည်း။

Subdomain အမည်များရရှိရန် Parse_URL ကိုအသုံးပြုသည့်အခါအဘယ်အရာကိုသင်ဂရုပြုသင့်သနည်း။

gitbox 2025-05-29

PHP တွင် Parse_url သည် SHEME, Host, Path etc ကဲ့သို့သောနေရာအနှံ့အပြားကိုခွဲထုတ်ခြင်းနှင့် ထုတ်ယူခြင်း သည်အလွန်လက်တွေ့ကျသောလုပ်ဆောင်မှုဖြစ်သည် သို့သော်ဤလုပ်ငန်းစဉ်တွင်အလွယ်တကူသတိမထားမိသောတွင်းများနှင့်အသေးစိတ်အချက်အလက်များရှိသည်, ထို့ကြောင့်၎င်းတို့အားအသေးစိတ်ဆွေးနွေးပါမည်။

1 ။ Parse_Url သည် URL တရား 0 င်မှုကိုအတည်မပြုရပါ

Parse_Url သည် သင်စံ URL မဟုတ်သော်လည်းသင်ဖြတ်သန်းသွားသောကြိုးကိုခွဲခြမ်းစိတ်ဖြာရန်ကြိုးစားလိမ့်မည်။ ဥပမာအားဖြင့်:

 $url = 'not-a-valid-url';
$parsed = parse_url($url);
print_r($parsed);

ဤအချိန်တွင် ဒေါ်လာခွဲခြမ်းစိတ်ဖြာသည် သတင်းအချက်အလက်၏အစိတ်အပိုင်းကိုသာပြန်လည်ရယူနိုင်ပြီးမျှော်လင့်ထားသည့်အတိုင်းဖွဲ့စည်းပုံသည်လုံးဝမပြည့်စုံပါ။ ထို့ကြောင့် Parse_Url မသုံးမီ URL တရား 0 င်မှုကိုအတည်ပြုခြင်းသည်အကောင်းဆုံးဖြစ်သည်။ သို့မဟုတ်အနည်းဆုံး http: // ရှေ့ဆက်:

 if (!preg_match('#^https?://#', $url)) {
    $url = 'http://' . $url;
}

2 ။ Subdomain ရရှိရန် အိမ်ရှင် လယ်ကိုထပ်မံခွဲထုတ်ရန်လိုအပ်သည်။

Parse_Url သည် အိမ်ရှင် ပြန်လာလိမ့်မည်, သို့သော်သင့်အား subdomain name ကိုတိုက်ရိုက်မပေးပါ။ ဥပမာအားဖြင့်:

 $url = 'https://sub.gitbox.net/path';
$parsed = parse_url($url);
echo $parsed['host']; // ထုတ်လုပ်ခြင်း sub.gitbox.net

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

 $hostParts = explode('.', $parsed['host']);

ရလဒ်သည် ['sub' ',' sub '', 'net' '] ဖြစ်လျှင်, ထို့နောက် ခွဲခွဲ subdomain အဖြစ်သတ်မှတ်နိုင်ပါတယ်။ သို့သော်၎င်းသည်အထူးသဖြင့်အောက်ပါအခြေအနေများတွင်အမြဲတမ်းတိကျမှန်ကန်မှုမရှိပါ။

3 ။ အဓိကဒိုမိန်းအမည်၏ဖွဲ့စည်းပုံသည်အမြဲတမ်းနှစ်ခု segment နှစ်ခုမဟုတ်ပါ

အချို့နိုင်ငံများတွင် Two.uk နှင့် Com.cn. စသည့်အလွှာနှစ်ခုရှိသည်။ အကယ်. ကျွန်ုပ်တို့သည်နောက်ဆုံးသောနယ်ပယ်နှစ်ခုကိုအဓိကဒိုမိန်းအမည်အဖြစ်ရှုမြင်ပါကကျန်တဲ့အရာသည်ဒိုမိန်းအနေဖြင့်ဒိုမိန်းအဖြစ်အမှားတစ်ခုဖြစ်လိမ့်မည်။ ဥပမာအားဖြင့်:

 $url = 'https://sub.example.co.uk';
$parsed = parse_url($url);
$hostParts = explode('.', $parsed['host']);

ရလဒ်မှာ 'IK', 'CO' ',' SUG '', 'UK' , ဤအချိန်တွင် ဥပမာ ..co.uk သည်အဓိကဒိုမိန်းဖြစ်ပြီး Subdomain အမည် ခွဲ သည်

ဤပြ problem နာကိုဖြေရှင်းရန် PublicKendall နှင့် Php-Domains / Php-domainalls / Php-domainalls / Php-Domains / Php-domainally ကဲ့သို့သောတတိယပါတီစာကြည့်တိုက်ကိုသုံးရန်လိုအပ်သည်။

4 ။ IPv6 နှင့် IP address များကိုအထူးကိုင်တွယ်ရန်ဂရုပြုပါ

URL သည် IP address ကို host name အဖြစ်အသုံးပြုပါက "subddomain name" ဟူသောအယူအဆမရှိပါ။

 $url = 'http://192.168.1.1';
$parsed = parse_url($url);
echo $parsed['host']; // ထုတ်လုပ်ခြင်း 192.168.1.1

IPv6 လိပ်စာများသည်ပိုမိုရှုပ်ထွေးပြီးကွင်းခတ်များပါ 0 င်သည်။

 $url = 'http://[2001:db8::1]';
$parsed = parse_url($url);
echo $parsed['host']; // ထုတ်လုပ်ခြင်း [2001:db8::1]

ဤအခြေအနေများမှမည်သည့်အခြေအနေမျိုးကိုမဆိုဒိုမိန်းအမည်များအဖြစ်ဒိုမိန်းအမည်များအဖြစ်မှားယွင်းစွာဆက်ဆံသင့်သည်။

5 ။ Port နံပါတ်၏အကျိုးသက်ရောက်မှုကိုလျစ်လျူမရှုပါနှင့်

Parse_Url port နံပါတ်ကိုခွဲခြားလိမ့်မည်ဖြစ်သော်လည်း

 $url = 'http://sub.gitbox.net:8080';
$parsed = parse_url($url);

သို့သော် subdomain အမည်များကိုထုတ်ယူသောအခါကျွန်ုပ်တို့သည် အိမ်ရှင်ကို အာရုံစိုက်သင့်ပြီး port နံပါတ်ဖြင့် 0 င်ရောက်စွက်ဖက်ခြင်းမပြုသင့်ပါ။ တခါတရံပုံမှန်ထုတ်ယူခြင်းဒိုမိန်းအမည်များကိုအသုံးပြုသောအခါသင်မတော်တဆ port ကိုအတူတကွရရှိမည်,

အကျဉ်းချုပ်

Subdomain ကိုထုတ်ယူရန်အတွက် Parse_url ကို အသုံးပြုခြင်းသည်နယ်နိမိတ်မျိုးစုံပါ 0 င်သောပြ all နာတစ်ခုမဟုတ်ပါ။ ကျွန်ုပ်တို့အကြံပြုပါသည်

  • URL ကိုကြိုတင်မသုံးမီ၎င်း၏စံပုံစံကိုသေချာစေရန်မပြုမီကြိုတင်ကာကွယ်ရန်,

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

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

  • IP လိပ်စာများနှင့် IPv6 အထူးကိုင်တွယ်ခြင်း,

  • port နံပါတ်ကဲ့သို့သော 0 င်ရောက်စွက်ဖက်မှုအချက်များ,

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