Web Development တွင်သုံးစွဲသူများမှထည့်သွင်းထားသော URL များသည်အလွန်အသုံးများသောလိုအပ်ချက်ဖြစ်သည်။ စနစ်၏လုံခြုံရေးကိုသေချာစေရန်နှင့်အန္တရာယ်ရှိသော link များသို့မဟုတ်အန္တရာယ်ကင်းသော link ကိုရှောင်ရှားနိုင်ရန်အတွက် URL whitelist filtering system ကိုအကောင်အထည်ဖော်ရန်မကြာခဏလိုအပ်သည်။ PHP မှပေးသော Parse_url function သည် URL ဖွဲ့စည်းပုံကိုအလွယ်တကူခွဲထုတ်ရန်,
ဤဆောင်းပါးသည်ရိုးရိုးရှင်းရှင်းနှင့်လက်တွေ့ကျသော URL Whitelist filtering system ကိုတည်ဆောက်ရန် Whitelisting ယန္တရားနှင့်ပေါင်းစပ်ထားသည့် PHP's Parse_url function ကိုအသုံးပြုရမည်ကိုမိတ်ဆက်ပေးမည်။
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
)
Whitelist filtering system ၏ရည်မှန်းချက်မှာ URL Domain Name သည် Whitelist စာရင်းတွင်ပါ 0 င်ခြင်းမှသာ 0 င်ရောက်ခွင့်ပြုရန်ဖြစ်သည်။
အဓိကအဆင့်များ
အသုံးပြုသူမှထည့်သွင်းထားသော URL ကိုခွဲခြမ်းစိတ်ဖြာရန် Parse_URL ကို သုံးပါ။
URL ၏အိမ်ရှင်တစ်စိတ်တစ်ပိုင်းကိုရယူပါ။
အိမ်ရှင်သည်ကြိုတင်သတ်မှတ်ထားသော whitelist ခင်းကျင်း၌တည်ရှိပါကစစ်ဆေးသည်။
တရားသဖြင့်စီရင်ခြင်းရလဒ်အပေါ် အခြေခံ. ခွင့်ပြုရန်သို့မဟုတ်ငြင်းပယ်ရန်ပြန်သွားပါ။
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";
}
}
ISURLLALLASTED function ကို input url သည် whitelist range အတွင်းတွင်ရှိ, မရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။
URL ၏ အိမ်ရှင် တစ်စိတ်တစ်ပိုင်းကိုရယူရန် Parse_URL ကို သုံးပါ။
subdomain ကိုက်ညီမှုနှင့်ပံ့ပိုးမှုဖြင့် domain အမည်များကို whitelist ရှိဒိုမိန်းအမည်များ နှင့်ကိုက်ညီခြင်းနှင့် SHITDOX.NET ပိုင် )
access ကိုခွင့်ပြုရှိမရှိကိုညွှန်ပြရန် boolean တန်ဖိုးကိုပြန်ပို့သည်။
Protocol ကန့်သတ်ချက်များ - FTP သို့မဟုတ်အခြားအန္တရာယ်ကင်းသော protocols များကိုရှောင်ရှားရန် HTTP နှင့် HTTPS တစ်ခုတည်းသော http နှင့် HTTPS ကဲ့သို့သော protocol များကိုကန့်သတ်ထားနိုင်သည်။
path filtering : whitelist စိစစ်အတည်ပြုအတည်ပြုပြီးနောက်လမ်းကြောင်းနှင့်စုံစမ်းမှု parameters တွေကိုနောက်ထပ်လမ်းကြောင်းဖြတ်သန်းမှုကိုရှောင်ရှားရန်နောက်ထပ်စစ်ထုတ်ဝံ့။
သစ်ထုတ်လုပ်ခြင်း - လုံခြုံရေးဖြစ်စဉ်များကိုစာရင်းစစ်ခြင်းနှင့်ပြ troubl နာများကိုဖြေရှင်းရန်အထောက်အကူပြုသောပယ်ချထားသည့်တောင်းဆိုမှုများအတွက်မှတ်တမ်းများကိုပယ်ချခဲ့သည်။
cache whitelistist : whitelist သည်ကြီးမားသောသို့မဟုတ်မကြာခဏမေးမြန်းခဲ့လျှင်ရလဒ်များကိုစွမ်းဆောင်ရည်တိုးတက်စေရန်ရလဒ်များကိုသိမ်းဆည်းထားနိုင်သည်။
PHP ၏ Parse_url function ကိုအသုံးပြုခြင်းသည် URL ကို အခြေခံ. Domain Name ကို အခြေခံ. အဖြူရောင် filtering ကို အသုံးပြု. အဖြူရောင် norl control ကိုအကောင်အထည်ဖော်ရန်ထိရောက်သောနည်းလမ်းဖြစ်သည်။ ဤဆောင်းပါးတွင်ဖော်ပြထားသောနမူနာကုဒ်သည်ရိုးရှင်းပြီးထိုးထွင်းသိမြင်မှုသည်ရိုးရှင်းစွာအဖြူရောင်စစ်ထုတ်ခြင်းစနစ်ကိုလျင်မြန်စွာတည်ဆောက်ရန်နှင့်ပြည့်စုံသောလိုအပ်ချက်များအရတိုးချဲ့ခြင်းနှင့်အကောင်းမြင်ခြင်းအတွက်အဆင်ပြေပါသည်။
Whitelist ကိုမှန်ကန်စွာပြုပြင်ထားပြီးနည်းလမ်းကိုမှန်ကန်စွာအသုံးပြုသည်နှင့်နည်းလမ်းကိုအသုံး 0 င်သည်ကိုအသုံးပြုသည်။ အန္တရာယ်ရှိသော URLs များဖြင့်တိုက်ခိုက်ခံရသော applications များကိုအန္တရာယ်ရှိသော URL များဖြင့်တိုက်ခိုက်ခြင်းအန္တရာယ်ကိုများစွာလျှော့ချနိုင်ပြီးစနစ်လုံခြုံရေးကိုတိုးတက်စေနိုင်သည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
URL