လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> URL whitelist filtering system ကိုအကောင်အထည်ဖော်ရန် PHP ၏ Parse_url function ကိုမည်သို့အသုံးပြုရမည်နည်း။

URL whitelist filtering system ကိုအကောင်အထည်ဖော်ရန် PHP ၏ Parse_url function ကိုမည်သို့အသုံးပြုရမည်နည်း။

gitbox 2025-05-21

Web Development တွင်သုံးစွဲသူများမှထည့်သွင်းထားသော URL များသည်အလွန်အသုံးများသောလိုအပ်ချက်ဖြစ်သည်။ စနစ်၏လုံခြုံရေးကိုသေချာစေရန်နှင့်အန္တရာယ်ရှိသော link များသို့မဟုတ်အန္တရာယ်ကင်းသော link ကိုရှောင်ရှားနိုင်ရန်အတွက် URL whitelist filtering system ကိုအကောင်အထည်ဖော်ရန်မကြာခဏလိုအပ်သည်။ PHP မှပေးသော Parse_url function သည် URL ဖွဲ့စည်းပုံကိုအလွယ်တကူခွဲထုတ်ရန်,

ဤဆောင်းပါးသည်ရိုးရိုးရှင်းရှင်းနှင့်လက်တွေ့ကျသော URL Whitelist filtering system ကိုတည်ဆောက်ရန် Whitelisting ယန္တရားနှင့်ပေါင်းစပ်ထားသည့် PHP's Parse_url function ကိုအသုံးပြုရမည်ကိုမိတ်ဆက်ပေးမည်။

1 ။ Parse_URL ဆိုတာဘာလဲ။

Parse_url သည် PHP တွင် built-in function တစ်ခုဖြစ်သည်။ Protocol (Scheme), port (path), လမ်းကြောင်း (PATH), လမ်းကြောင်း (PATH), query parameters (query) စသည်တို့စသည်တို့ကိုအပြည့်အဝ URL ကိုအကုန်လုံးအကုန်လုံးအကုန်လုံးပြိုကွဲစေနိုင်သည်။

နမူနာကုဒ်:

 $url = "https://gitbox.net/path/to/resource?query=123";

$parts = parse_url($url);
print_r($parts);

ရလဒ်ရလဒ် -

 Array
(
    [scheme] => https
    [host] => gitbox.net
    [path] => /path/to/resource
    [query] => query=123
)

2 ။ URL whitelist filtering ကိုအကောင်အထည်ဖော်ခြင်း၏အဓိကစိတ်ကူး

Whitelist filtering system ၏ရည်မှန်းချက်မှာ URL Domain Name သည် Whitelist စာရင်းတွင်ပါ 0 င်ခြင်းမှသာ 0 င်ရောက်ခွင့်ပြုရန်ဖြစ်သည်။

အဓိကအဆင့်များ

  1. အသုံးပြုသူမှထည့်သွင်းထားသော URL ကိုခွဲခြမ်းစိတ်ဖြာရန် Parse_URL ကို သုံးပါ။

  2. URL ၏အိမ်ရှင်တစ်စိတ်တစ်ပိုင်းကိုရယူပါ။

  3. အိမ်ရှင်သည်ကြိုတင်သတ်မှတ်ထားသော whitelist ခင်းကျင်း၌တည်ရှိပါကစစ်ဆေးသည်။

  4. တရားသဖြင့်စီရင်ခြင်းရလဒ်အပေါ် အခြေခံ. ခွင့်ပြုရန်သို့မဟုတ်ငြင်းပယ်ရန်ပြန်သွားပါ။

3 ။ Code Pegion: PHP သည် URL whitelist filtering unt လုပ်ခြင်း

Parse_url ကို အသုံးပြု. URL Whitelist filtering ကိုမည်သို့အကောင်အထည်ဖော်မည်ကိုပြသသည့်နမူနာကုဒ်တစ်ခုရှိသည်။

 <?php
function isUrlAllowed(string $url, array $whitelist): bool {
    // သုံးသပ်ကြည့်ရှုခြင်း URL
    $parts = parse_url($url);
    
    if (!$parts || !isset($parts['host'])) {
        // URL မမှန်ကန်သောသို့မဟုတ်အဘယ်သူအားမျှ host,ဝင်ရောက်ချိတ်ဆက်ရန်ငြင်းဆိုခြင်း
        return false;
    }
    
    $host = strtolower($parts['host']);
    
    // စစ်ဆေးကြည့်ရှု host Whitelist ပေါ်မှာလား
    foreach ($whitelist as $allowedHost) {
        $allowedHost = strtolower($allowedHost);
        
        // SHEDDONDAY ကိုက်ညီမှုကိုထောက်ပံ့ပါ,ဥပမာအားဖြင့်ခွင့်ပြုပါ gitbox.net ဒါ့အပြင်လွန်ခဲ့သည် sub.gitbox.net
        if ($host === $allowedHost || (substr($host, -strlen('.'.$allowedHost)) === '.'.$allowedHost)) {
            return true;
        }
    }
    
    return false;
}

// Whitelist ဒိုမိန်းအမည်ကိုသတ်မှတ်ပါ
$whitelist = [
    "gitbox.net",
    "api.gitbox.net",
    "cdn.gitbox.net"
];

// စမ်းသပ်မှု URL
$testUrls = [
    "https://gitbox.net/index.php",
    "http://sub.gitbox.net/page",
    "https://malicious.com/attack",
    "https://api.gitbox.net/data",
    "ftp://cdn.gitbox.net/resource"
];

foreach ($testUrls as $url) {
    if (isUrlAllowed($url, $whitelist)) {
        echo "ဝင်ရောက်ခွင့်ပြုပါ:$url\n";
    } else {
        echo "ဝင်ရောက်ချိတ်ဆက်ရန်ငြင်းဆိုခြင်း:$url\n";
    }
}

Code ဖော်ပြချက်:

  • ISURLLALLASTED function ကို input url သည် whitelist range အတွင်းတွင်ရှိ, မရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။

  • URL ၏ အိမ်ရှင် တစ်စိတ်တစ်ပိုင်းကိုရယူရန် Parse_URL ကို သုံးပါ။

  • subdomain ကိုက်ညီမှုနှင့်ပံ့ပိုးမှုဖြင့် domain အမည်များကို whitelist ရှိဒိုမိန်းအမည်များ နှင့်ကိုက်ညီခြင်းနှင့် SHITDOX.NET ပိုင် )

  • access ကိုခွင့်ပြုရှိမရှိကိုညွှန်ပြရန် boolean တန်ဖိုးကိုပြန်ပို့သည်။

4 ။ နောက်ထပ် optimization အကြံပြုချက်များ

  • Protocol ကန့်သတ်ချက်များ - FTP သို့မဟုတ်အခြားအန္တရာယ်ကင်းသော protocols များကိုရှောင်ရှားရန် HTTP နှင့် HTTPS တစ်ခုတည်းသော http နှင့် HTTPS ကဲ့သို့သော protocol များကိုကန့်သတ်ထားနိုင်သည်။

  • path filtering : whitelist စိစစ်အတည်ပြုအတည်ပြုပြီးနောက်လမ်းကြောင်းနှင့်စုံစမ်းမှု parameters တွေကိုနောက်ထပ်လမ်းကြောင်းဖြတ်သန်းမှုကိုရှောင်ရှားရန်နောက်ထပ်စစ်ထုတ်ဝံ့။

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

  • cache whitelistist : whitelist သည်ကြီးမားသောသို့မဟုတ်မကြာခဏမေးမြန်းခဲ့လျှင်ရလဒ်များကိုစွမ်းဆောင်ရည်တိုးတက်စေရန်ရလဒ်များကိုသိမ်းဆည်းထားနိုင်သည်။

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

PHP ၏ Parse_url function ကိုအသုံးပြုခြင်းသည် URL ကို အခြေခံ. Domain Name ကို အခြေခံ. အဖြူရောင် filtering ကို အသုံးပြု. အဖြူရောင် norl control ကိုအကောင်အထည်ဖော်ရန်ထိရောက်သောနည်းလမ်းဖြစ်သည်။ ဤဆောင်းပါးတွင်ဖော်ပြထားသောနမူနာကုဒ်သည်ရိုးရှင်းပြီးထိုးထွင်းသိမြင်မှုသည်ရိုးရှင်းစွာအဖြူရောင်စစ်ထုတ်ခြင်းစနစ်ကိုလျင်မြန်စွာတည်ဆောက်ရန်နှင့်ပြည့်စုံသောလိုအပ်ချက်များအရတိုးချဲ့ခြင်းနှင့်အကောင်းမြင်ခြင်းအတွက်အဆင်ပြေပါသည်။

Whitelist ကိုမှန်ကန်စွာပြုပြင်ထားပြီးနည်းလမ်းကိုမှန်ကန်စွာအသုံးပြုသည်နှင့်နည်းလမ်းကိုအသုံး 0 င်သည်ကိုအသုံးပြုသည်။ အန္တရာယ်ရှိသော URLs များဖြင့်တိုက်ခိုက်ခံရသော applications များကိုအန္တရာယ်ရှိသော URL များဖြင့်တိုက်ခိုက်ခြင်းအန္တရာယ်ကိုများစွာလျှော့ချနိုင်ပြီးစနစ်လုံခြုံရေးကိုတိုးတက်စေနိုင်သည်။

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

    URL