လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Configuration Verification ပြုလုပ်ရန် PHP ၏ Get_Defined_Contentants function ကို အသုံးပြု. စဉ်ဆက်မပြတ် whiteelist ကိုပုံမှန်တည်ဆောက်ပုံကိုမည်သို့တည်ဆောက်နိုင်မည်နည်း။

Configuration Verification ပြုလုပ်ရန် PHP ၏ Get_Defined_Contentants function ကို အသုံးပြု. စဉ်ဆက်မပြတ် whiteelist ကိုပုံမှန်တည်ဆောက်ပုံကိုမည်သို့တည်ဆောက်နိုင်မည်နည်း။

M66 2025-05-17

PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည်များသောအားဖြင့်ကမ္ဘာလုံးဆိုင်ရာ configuration parameters များသို့မဟုတ် system အချက်အလက်များကိုသိမ်းဆည်းရန် Constants ကိုအသုံးပြုလေ့ရှိသည်။ အချို့သောအခြေအနေများတွင် configuration files များ (သို့) ပြင်ပနည်းလမ်းများမှတဆင့်မည်သည့်အနေဖြင့်ပုံမှန်အားဖြင့်မှန်ကန်စွာထိန်းချုပ်နိုင်မည်ဟုမျှော်လင့်ပါသည်။ ဤအောင်မြင်ရန် PHP ၏ built-in get_defines_contsinants function ကို သုံး. ပရိုဂရမ်တွင်တရား 0 င်အနေဖြင့်သာအသုံးပြုသည်။

1 ။ get_defined_concants ကဘာလဲ။

Get_Defined_constants သည် PHP တွင်ပါ 0 င်သော function တစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်မှု၏ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -

 array get_defined_constants (bool $categorize = false)

Parameter အမျိုးအစားသည် Constitants ကိုအမျိုးအစားအလိုက်ပြန်ပို့ရန်ရှိမရှိဆုံးဖြတ်သည်။ ပုံမှန်အားဖြင့်၎င်းသည်ကိန်းပ်အားလုံးပါ 0 င်သည့်ခင်းကျင်းမှုတစ်ခုရရှိစေသည်။ မှန်ကန်စွာ သတ်မှတ်ထားပါကကိန်းဂဏန်းများကိုအမျိုးအစားများဖြင့်ခွဲခြားထားသည် (system constants, conster များ,

2 ။ လက်ရှိတွင်လက်ရှိသတ်မှတ်ထားသောစဉ်ဆက်မပြတ်ရရန် get_defined_constants ကို သုံးပါ

ကျွန်ုပ်တို့သည်စဉ်ဆက်မပြတ် whitelist အတည်ပြုရန်အတည်ပြုသည့်အခါကျွန်ုပ်တို့သည်သတ်မှတ်ထားသောကိန်းဂဏန်းများအားလုံးကိုလက်ရှိ script တွင်ပထမဆုံးရရှိရန်လိုအပ်သည်။ Get_Defined_constants () function ကိုခေါ်ဆိုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဤအချက်အလက်များကိုအလွယ်တကူရယူနိုင်ရန်နှင့်၎င်းကိုအတည်ပြုနိုင်သည်။

 $defined_constants = get_defined_constants(true);
print_r($defined_constants);

output သည်သတ်မှတ်ထားသော constants အားလုံးကို၎င်းတို့၏တန်ဖိုးများကိုပြလိမ့်မည်။ ယခုအချိန်တွင်ကျွန်ုပ်တို့သည်စနစ်သတ်မှတ်ထားသောကိန်းနှင့်စိတ်ကြိုက်တပ်ဖွဲ့များအားကျွန်ုပ်တို့၏လိုအပ်ချက်များနှင့်အညီစစ်တမ်းသတ်မှတ်ထားသည့်ကိန်းဂဏန်းများကိုစစ်ထုတ်နိုင်သည်။

3 ။ စဉ်ဆက်မပြတ် whitelist တည်ဆောက်ပါ

ခွင့်ပြုသည့်ကိန်းရှင်သာသာအသုံးပြုကြောင်းသေချာစေရန် "စဉ်ဆက်မပြတ် whitelist" ကိုတည်ဆောက်ခြင်းအားဖြင့် Constants အသုံးပြုမှုကိုကန့်သတ်နိုင်သည်။ စဉ်ဆက်မပြတ် whitelist သည်တရား 0 င်အဆက်မပြတ်အမည်များပါ 0 င်သည်။

 $whitelist = ['MY_APP_DEBUG', 'MY_APP_ENV', 'MY_APP_VERSION'];

ဒီခင်းကျင်းမှုမှာငါတို့ခွင့်ပြုတဲ့အဆက်မပြတ်နာမည်တွေပါပါတယ်။ ထို့နောက်ကျွန်ုပ်တို့သည်လက်ရှိသတ်မှတ်ထားသောသတ်မှတ်ထားသောကိန်းဂဏန်းများကိုကျော်လွှားနိုင်ပြီး၎င်းတို့ whitelist တွင်ရှိ,

4 ။ စဉ်ဆက်မပြတ် whitelist အပေါ်ရှိမရှိ dynonically စစ်ဆေးပါ

Dynamic Verification မှတစ်ဆင့် Whitelist ရှိခွင့်ပြုထားသောစဉ်ဆက်မပြတ်ကိန်းဂဏန်းများကိုသာအသုံးပြုသည်။ တိကျသောအကောင်အထည်ဖော်မှုနည်းလမ်းမှာအောက်ပါအတိုင်းဖြစ်သည် -

 $defined_constants = get_defined_constants(true);
$whitelist = ['MY_APP_DEBUG', 'MY_APP_ENV', 'MY_APP_VERSION'];

foreach ($defined_constants['user'] as $constant => $value) {
    if (!in_array($constant, $whitelist)) {
        echo "အသိပေး: မြဲစဲှ '$constant' whitelist အတွက်သတ်မှတ်မထားဘူး!\n";
    } else {
        echo "မြဲစဲှ '$constant' အသုံးပြုရန်ခွင့်ပြုခဲ့ပါသည်,တန်ဖိုး: $value\n";
    }
}

ဤကုဒ်တွင်သုံးစွဲသူသတ်မှတ်ထားသောကိန်းစုအားလုံးကိုလက်ရှိ script တွင်ပထမဆုံးအကြိမ်ရရှိပြီး, ထို့နောက် စဉ် ဆက်မပြတ်သည်အဖြူရောင် 0 တ ဆင်သူ၌ရှိ, အကယ်. စဉ်ဆက်မပြတ် whitelist ၌မပါလျှင်, ကျနော်တို့သတိပေးသတင်းစကား output ကို output ။

5 ။ လက်တွေ့ကျသော application အခြေအနေများ

5.1 configuration ဖိုင်များကိုစဉ်ဆက်မပြတ်စိစစ်အတည်ပြု

လျှောက်လွှာတွင်အသုံးပြုရန်လိုအပ်သည့်သီးခြားဖိုင်များပါ 0 င်သည့် configuration file တစ်ခုရှိသည်ဆိုပါစို့။ ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်ကြိုတင်သတ်မှတ်ထားသည့်ကိန်းရှင်များကိုသာအသုံးပြုနိုင်ရန်သေချာစေလိုသည်။

ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်ကျွန်ုပ်တို့၏လျှောက်လွှာတွင်သတင်းအချက်အလက်, ပတ်ဝန်းကျင်ချိန်ညှိချက်များစသဖြင့်အချို့သောကိန်းသားများကိုသတ်မှတ်ရန်လိုအပ်နိုင်သည်။

 define('MY_APP_DEBUG', true);
define('MY_APP_ENV', 'production');
define('MY_APP_VERSION', '1.0.0');

ထို့နောက်၎င်းတို့အားအဖြူရောင်ဝါဒီများနှင့်နှိုင်းယှဉ်လျှင်ဤကိန်းဂဏန်းများသည်တရားဝင်ဖြစ်ကြောင်းနှင့်အလွဲသုံးစားမှုသို့မဟုတ်မလျော်ကန်သောပြုပြင်မွမ်းမံမှုကိုရှောင်ရှားရန်၎င်းတို့ကိုပါ 0 င်သည်။

5.2 dynamic control constants enable နှင့် disable

အချို့သောအခြေအနေများတွင်တက်ကြွသော configuration မှတဆင့်အချို့သောကိန်းဂဏန်းများကို enable သို့မဟုတ် disable လုပ်ရန်နှစ်လိုဖွယ်ရှိသည်။ ဥပမာအားဖြင့်, အချို့သောကိန်းသားများကိုဖွံ့ဖြိုးရေးစနစ်တွင်သာဖွင့်နိုင်ပြီးထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်ပိတ်ထားနိုင်သည်။ စဉ်ဆက်မပြတ် whiteelisting ယန္တရားမှတစ်ဆင့်ကျွန်ုပ်တို့သည်မည်သည့် Constitant ကိုတိကျသောပတ် 0 န်းကျင်တွင်အလွယ်တကူထိန်းချုပ်နိုင်သည်။

 if (MY_APP_ENV === 'development') {
    define('MY_APP_DEBUG', true);
} else {
    define('MY_APP_DEBUG', false);
}

ယခုအချိန်တွင်ကျွန်ုပ်တို့သည်ပတ် 0 န်းကျင်နှင့်အညီစဉ်ဆက်မပြတ် whitelist ကိုသဘာ 0 ပတ် 0 န်းကျင်နှင့်အညီပုံမှန်တည်ဆောက်နိုင်ပြီးသင့်လျော်သောကိန်းဂဏန်းများသည်သက်ဆိုင်ရာပတ်ဝန်းကျင်တွင်သာအကျိုးသက်ရောက်ကြောင်းသေချာစေရန်သက်ဆိုင်ရာ configuration verification ကိုလုပ်ဆောင်နိုင်သည်။

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

PHP ၏ get_defined_constants function မှတဆင့်ကျွန်ုပ်တို့သည်လက်ရှိ script တွင်သတ်မှတ်ထားသော constants အားလုံးကိုအလွယ်တကူရယူပြီးပြောင်းလဲနေသောစိစစ်အတည်ပြုလုပ်ဆောင်ရန် Whitelisting ယန္တရားကိုအသုံးပြုနိုင်သည်။ စဉ်ဆက်မပြတ် Whitelist သည်ကြိုတင်သတ်မှတ်ထားသောကိန်းရှင်များကိုသာကန့်သတ်ထားသည်။

ပုံမှန်အားဖြင့်ပတ် 0 န်းကျင်ဆိုင်ရာဖွဲ့စည်းမှု, ပြောင်းလဲနေသောထိန်းချုပ်မှုနှင့်လုံခြုံရေးကိုပေါင်းစပ်။ configuration စိစစ်အတည်ပြုရန်အတွက် configuration sideification အတွက် configuration sideification အတွက်စဉ်ဆက်မပြတ် whitelists များကိုကျွန်ုပ်တို့ပြောင်းလွယ်ပြင်လွယ်သွားနိုင်သည်။