လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Php_uname ကြောင့်ဖြစ်ပေါ်လာသောသတင်းအချက်အလက်ယိုစိမ့်မှုကိုမည်သို့ရှောင်ရှားနိုင်မည်နည်း ()

Php_uname ကြောင့်ဖြစ်ပေါ်လာသောသတင်းအချက်အလက်ယိုစိမ့်မှုကိုမည်သို့ရှောင်ရှားနိုင်မည်နည်း ()

M66 2025-06-02

PHP တွင် PHP_Uname () function ကို PHP scripts များကိုဖွင့်ရန် operating system အချက်အလက်များရရှိရန်အသုံးပြုသည်။ ဤလုပ်ဆောင်မှုသည် debugging နှင့် system management တွင်အလွန်အသုံးဝင်သော်လည်း၎င်းသည်သတင်းအချက်အလက်ယိုစိမ့်မှုအတွက်အန္တရာယ်ရှိနိုင်သည်။ ဆာဗာ၏အသေးစိတ်ပတ် 0 န်းကျင်ဆိုင်ရာအချက်အလက်များကိုရယူခြင်းဖြင့်နောက်ထပ်တိုက်ခိုက်မှုများပြုလုပ်ရန်ဤအချက်အလက်များကိုတိုက်ခိုက်သူသည်ဤအချက်အလက်များကိုသုံးနိုင်သည်။ ထို့ကြောင့် PHP_Uname မှယူဆောင်လာသည့်လုံခြုံရေးအန္တရာယ်များကိုကျိုးကြောင်းဆီလျော်စွာတားဆီးရန်အထူးအရေးကြီးသည်။

ဤဆောင်းပါးသည် php_uname () ၏အန္တရာယ်များမှစတင်ပြီး developer များကဤလုပ်ဆောင်မှုကိုအန္တရာယ်ကင်းစွာအသုံးပြုရန်ကူညီရန်ထိရောက်သောလုံခြုံရေးအစီအမံများကိုရှင်းပြပါမည်။

1 ။ PHP_UNAME ၏အန္တရာယ်များကိုနားလည်ပါ ()

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 ကိုသင်တွေ့နိုင်သည်။

2 ။ PHP_UNAME () ရလဒ်များကိုတိုက်ရိုက်ရှောင်ရှားပါ

ကာကွယ်ရန်အလွယ်ကူဆုံးနည်းလမ်းမှာ 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 ကိုရယူရန်ခွင့်ပြုချက်မရှိပါ";
}

3 ။ ဆက်သွယ်မှုထိန်းချုပ်မှုကို အသုံးပြု. ခေါ်ဆိုမှုခွင့်ပြုချက်ကိုကန့်သတ်

အသုံးပြုသူခွင့်ပြုချက်စစ်ဆေးခြင်းယန္တရားနှင့်ပေါင်းစပ်ပြီး 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();
}

4 ။ အထိခိုက်မခံတဲ့အချက်အလက်တွေကို filter လုပ်ထားတဲ့အချက်အလက်တွေကိုသာဖော်ထုတ်ပြီးလိုအပ်တဲ့အကြောင်းအရာတွေကိုဖော်ထုတ်ပါ

အသုံးပြုသူအားဆာဗာအချက်အလက်များကိုအမှန်တကယ်ပြသရန်လိုအပ်ပါကအထိခိုက်မခံသောအကွက်များကိုဖယ်ရှားရန် 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

5 ။ PHP ပတ်ဝန်းကျင်ကို configure လုပ်ပါ။ function ခေါ်ဆိုမှုများကိုပိတ်ထားပါ (အထူးပတ်ဝန်းကျင်တွင်သက်ဆိုင်သည်)

Php_uname () အပါအ 0 င် PHP.ini configurations မှတဆင့်အထိခိုက်မခံသောလုပ်ဆောင်ချက်များကို PHP.ini configurations မှတဆင့်အထိခိုက်မခံသောလုပ်ဆောင်ချက်များကိုပိတ်ထားနိုင်သည်။

 disable_functions = php_uname

ဤနည်းအားဖြင့်၎င်းကိုကုဒ်နံပါတ်ဖြင့်ခေါ်လျှင်ပင် function ကိုကွပ်မျက်ခံရလိမ့်မည်မဟုတ်ပါ။ သို့သော်ဤအချက်သည်မှီခိုနေသည့်စနစ်သတင်းအချက်အလက်များ၏ပုံမှန်လုပ်ဆောင်မှုကိုအကျိုးသက်ရောက်စေနိုင်သည်ကိုသတိပြုသင့်သည်။

6 ။ စာရင်းစစ်နှင့်စောင့်ကြည့်လေ့လာခြင်းမှတ်တမ်း

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']);
}

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

ဘေးကင်းလုံခြုံမှုအစီအမံ ဥပမာပြပါ
တိုက်ရိုက် output ကိုရှောင်ကြဉ်ပါ ခွင့်ပြုချက်မရှိဘဲစာမျက်နှာများအပေါ် php_uname () ကို မပြပါ
ခွင့်ပြုချက်ထိန်းချုပ်မှု လုပ်ပိုင်ခွင့်များကဲ့သို့သောလုပ်ပိုင်ခွင့်ရှိသောအသုံးပြုသူများကိုသာကန့်သတ်ထားသည်
သတင်းအချက်အလက် filter အထိခိုက်မခံသောအသေးစိတ်အချက်အလက်များကိုဖယ်ရှားရန် output အချက်အလက်များကို filter လုပ်ပါ
function ကိုခေါ်ဆိုမှုများကိုပိတ်ပါ php.ini မှတဆင့် php_uname () function ကို disable လုပ်ပါ
စာရင်းစစ်နှင့်စောင့်ကြည့်လေ့လာခြင်းမှတ်တမ်း ဝင်ရောက်ခွင့်အခြေအနေများကိုမှတ်တမ်းတင်ခြင်းနှင့်ပုံမှန်မဟုတ်သောဝင်ရောက်ခွင့်တားဆီး

ခွင့်ပြုချက်ထိန်းချုပ်မှုနှင့် output filtering ကိုဒီဇိုင်းဆွဲခြင်းနှင့် log monitoring နှင့်ပူးပေါင်းခြင်းဖြင့် PHP_uname () ၏သတင်းအချက်အလက်ယိုစိမ့်မှုပြ problems နာများကိုထိရောက်စွာရှောင်ရှားနိုင်ပြီး PHP application များ၏လုံခြုံရေးကိုသေချာစေနိုင်သည်။

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