PHP တွင် PHP_Uname () function ကို PHP scripts များကိုဖွင့်ရန် operating system အချက်အလက်များရရှိရန်အသုံးပြုသည်။ ဤလုပ်ဆောင်မှုသည် debugging နှင့် system management တွင်အလွန်အသုံးဝင်သော်လည်း၎င်းသည်သတင်းအချက်အလက်ယိုစိမ့်မှုအတွက်အန္တရာယ်ရှိနိုင်သည်။ ဆာဗာ၏အသေးစိတ်ပတ် 0 န်းကျင်ဆိုင်ရာအချက်အလက်များကိုရယူခြင်းဖြင့်နောက်ထပ်တိုက်ခိုက်မှုများပြုလုပ်ရန်ဤအချက်အလက်များကိုတိုက်ခိုက်သူသည်ဤအချက်အလက်များကိုသုံးနိုင်သည်။ ထို့ကြောင့် PHP_Uname မှယူဆောင်လာသည့်လုံခြုံရေးအန္တရာယ်များကိုကျိုးကြောင်းဆီလျော်စွာတားဆီးရန်အထူးအရေးကြီးသည်။
ဤဆောင်းပါးသည် php_uname () ၏အန္တရာယ်များမှစတင်ပြီး developer များကဤလုပ်ဆောင်မှုကိုအန္တရာယ်ကင်းစွာအသုံးပြုရန်ကူညီရန်ထိရောက်သောလုံခြုံရေးအစီအမံများကိုရှင်းပြပါမည်။
PHP_Uname မှပြန်လာသောအကြောင်းအရာများသည် operating system name, host name, version, refuer number စသည်တို့ပါ 0 င်သည်။
သတ်သတ်မှတ်မှတ်စနစ်အားနည်းချက်များနှင့် ပတ်သက်. တိုက်ခိုက်မှုများကိုတိုက်ခိုက်ရန်အတွက်တိုက်ခိုက်သူများအားကူညီရန်ဆာဗာအမျိုးအစားများနှင့်ဗားရှင်းများကိုထုတ်ဖော်ပြသခြင်း။
ကွန်ယက်စကင်ဖတ်စစ်ဆေးမှုနှင့်ကျူးကျော်ဝင်ရောက်ခြင်းကိုလွယ်ကူချောမွေ့စေရန်ကွန်ယက်ဖွဲ့စည်းပုံကိုသဲလွန်စပေးသည်။
အထိခိုက်မခံသောသတင်းအချက်အလက်ယိုစိမ့်မှု၏အန္တရာယ်ကိုတိုးမြှင့်ခြင်းနှင့်စနစ်၏လုံခြုံရေးကာကွယ်စောင့်ရှောက်ရေးအကျိုးသက်ရောက်မှုကိုလျှော့ချပါ။
ဥပမာအားဖြင့်:
echo php_uname();
၎င်းသည်အောက်ပါကဲ့သို့သောအရာတစ်ခုကိုထုတ်လုပ်နိုင်သည်။
Linux server1.m66.net 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64
၎င်းသည်တိုက်ခိုက်သူများအတွက်အလွန်တန်ဖိုးရှိသောသတင်းအချက်အလက်ဖြစ်သော operating system type နှင့် kernel version ကိုသင်တွေ့နိုင်သည်။
ကာကွယ်ရန်အလွယ်ကူဆုံးနည်းလမ်းမှာ Php_uname () ၏ရလဒ်များကိုရှေ့တန်းမှနောက်စာမျက်နှာ (သို့) API တုံ့ပြန်မှုများကိုတိုက်ရိုက်ထုတ်လွှင့ ်. ရှောင်ရှားရန်ဖြစ်သည် ။ အကယ်. သင်သည်ဆာဗာအချက်အလက်များကိုအမှန်တကယ်ရယူရန်လိုအပ်ပါကသာမန်သုံးစွဲသူများကသတင်းအချက်အလက်များကို 0 င်ရောက်ခွင့်မပြုကြောင်းသေချာစေသင့်သည်။
ဥပမာ -
// အမှားသရုပ်ပြ:တိုက်ရိုက် output ကို,ဖြစ်နိုင်သောသတင်းအချက်အလက်ယိုစိမ့်မှု
echo php_uname();
// တိုးတက်မှုဆန္ဒပြ:အုပ်ချုပ်ရေးမှူးများမှသာလက်လှမ်းမီ
session_start();
if (isset($_SESSION['is_admin']) && $_SESSION['is_admin'] === true) {
echo php_uname();
} else {
echo "System Information ကိုရယူရန်ခွင့်ပြုချက်မရှိပါ";
}
အသုံးပြုသူခွင့်ပြုချက်စစ်ဆေးခြင်းယန္တရားနှင့်ပေါင်းစပ်ပြီး Php_uname () ကို ခေါ်ဆိုနိုင်ပြီး၎င်း၏ output ကိုကြည့်ရှုနိုင်သည့်အသုံးပြုသူအခန်းကဏ်ကိုတင်းကြပ်စွာကန့်သတ်ထားသည်။ သက်ဆိုင်ရာ interface or စာမျက်နှာကိုအုပ်ချုပ်ရေးမှူးများမှသာ 0 င်ရောက်ရန်အသုံးပြုရန်အကြံပြုသည်။
နမူနာကုဒ်:
function getServerInfo() {
// သာအုပ်ချုပ်ရေးမှူးကိုဝင်ရောက်ခွင့်ခွင့်ပြုပါ
session_start();
if (!isset($_SESSION['user_role']) || $_SESSION['user_role'] !== 'admin') {
http_response_code(403);
exit('ဝင်ရောက်ချိတ်ဆက်ရန်ငြင်းဆိုခြင်း');
}
return php_uname();
}
အသုံးပြုသူအားဆာဗာအချက်အလက်များကိုအမှန်တကယ်ပြသရန်လိုအပ်ပါကအထိခိုက်မခံသောအကွက်များကိုဖယ်ရှားရန် PHP_Uname () ၏ output ကို filter လုပ်ရန်အကြံပြုသည်။
$fullInfo = php_uname();
$parts = explode(' ', $fullInfo);
// operating system နှင့် host name ကိုသာထိန်းသိမ်းထားသည်,Kernel ဗားရှင်းနှင့်အခြားအသေးစိတ်အချက်အလက်များကိုပိတ်ဆို့ပါ
$filteredInfo = $parts[0] . ' ' . $parts[1];
echo $filteredInfo;
ရလဒ်ဥပမာ:
Linux server1.m66.net
Php_uname () အပါအ 0 င် PHP.ini configurations မှတဆင့်အထိခိုက်မခံသောလုပ်ဆောင်ချက်များကို PHP.ini configurations မှတဆင့်အထိခိုက်မခံသောလုပ်ဆောင်ချက်များကိုပိတ်ထားနိုင်သည်။
disable_functions = php_uname
ဤနည်းအားဖြင့်၎င်းကိုကုဒ်နံပါတ်ဖြင့်ခေါ်လျှင်ပင် function ကိုကွပ်မျက်ခံရလိမ့်မည်မဟုတ်ပါ။ သို့သော်ဤအချက်သည်မှီခိုနေသည့်စနစ်သတင်းအချက်အလက်များ၏ပုံမှန်လုပ်ဆောင်မှုကိုအကျိုးသက်ရောက်စေနိုင်သည်ကိုသတိပြုသင့်သည်။
PHP_UNAME () နှင့် ဆက်စပ်သော interfaces များကိုစစ်ဆေးခြင်းမှတ်တမ်းများကိုစစ်ဆေးခြင်းနှင့်မှတ်တမ်းတင်ခြင်းမှတ်တမ်းများကိုမှတ်တမ်းတင်ခြင်းများသည်ပုံမှန်မဟုတ်သောဝင်ရောက်ခွင့်အပြုအမူများကိုရှာဖွေတွေ့ရှိရန်နှင့်အလားအလာရှိသောခြိမ်းခြောက်မှုများကိုအချိန်မီတုံ့ပြန်ရန်ကူညီသည်။
နမူနာမှတ်တမ်းရေးသားခြင်း:
function logAccess($user) {
file_put_contents('/var/log/server_info_access.log', date('Y-m-d H:i:s') . " - {$user} accessed server info\n", FILE_APPEND);
}
session_start();
if (isset($_SESSION['user'])) {
logAccess($_SESSION['user']);
}
ဘေးကင်းလုံခြုံမှုအစီအမံ | ဥပမာပြပါ |
---|---|
တိုက်ရိုက် output ကိုရှောင်ကြဉ်ပါ | ခွင့်ပြုချက်မရှိဘဲစာမျက်နှာများအပေါ် php_uname () ကို မပြပါ |
ခွင့်ပြုချက်ထိန်းချုပ်မှု | လုပ်ပိုင်ခွင့်များကဲ့သို့သောလုပ်ပိုင်ခွင့်ရှိသောအသုံးပြုသူများကိုသာကန့်သတ်ထားသည် |
သတင်းအချက်အလက် filter | အထိခိုက်မခံသောအသေးစိတ်အချက်အလက်များကိုဖယ်ရှားရန် output အချက်အလက်များကို filter လုပ်ပါ |
function ကိုခေါ်ဆိုမှုများကိုပိတ်ပါ | php.ini မှတဆင့် php_uname () function ကို disable လုပ်ပါ |
စာရင်းစစ်နှင့်စောင့်ကြည့်လေ့လာခြင်းမှတ်တမ်း | ဝင်ရောက်ခွင့်အခြေအနေများကိုမှတ်တမ်းတင်ခြင်းနှင့်ပုံမှန်မဟုတ်သောဝင်ရောက်ခွင့်တားဆီး |
ခွင့်ပြုချက်ထိန်းချုပ်မှုနှင့် output filtering ကိုဒီဇိုင်းဆွဲခြင်းနှင့် log monitoring နှင့်ပူးပေါင်းခြင်းဖြင့် PHP_uname () ၏သတင်းအချက်အလက်ယိုစိမ့်မှုပြ problems နာများကိုထိရောက်စွာရှောင်ရှားနိုင်ပြီး PHP application များ၏လုံခြုံရေးကိုသေချာစေနိုင်သည်။
အကယ်. သင်သည်ဆာဗာအချက်အလက်များကိုဖော်ထုတ်ရန်လိုအပ်သည့်ပတ်ဝန်းကျင်ကိုအသုံးပြုနေပါကအလားအလာရှိသောအန္တရာယ်များကိုအနည်းဆုံးလျှော့ချရန်အထက်ပါလုံခြုံရေးမူဝါဒများကိုထည့်သွင်းစဉ်းစားရန်သေချာပါစေ။