လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် set_includude_path function ကိုအသုံးပြုခြင်းကြောင့်ဖြစ်ပေါ်လာသောဖြစ်နိုင်ချေရှိသောလုံခြုံရေးဆိုင်ရာအန္တရာယ်များကိုမည်သို့ကာကွယ်နိုင်သနည်း။

PHP တွင် set_includude_path function ကိုအသုံးပြုခြင်းကြောင့်ဖြစ်ပေါ်လာသောဖြစ်နိုင်ချေရှိသောလုံခြုံရေးဆိုင်ရာအန္တရာယ်များကိုမည်သို့ကာကွယ်နိုင်သနည်း။

gitbox 2025-06-15

Set_includude_path သည် PHP ရှိ function တစ်ခုဖြစ်ပြီးဖိုင်အတွင်းရှိလမ်းကြောင်းများကိုသတ်မှတ်ရန်ဖြစ်သည်။ PHP သည်ဖိုင်များကိုရှာဖွေနေသည့်အခါ PHP ကိုသတ်မှတ်ထားသောလမ်းကြောင်းစာရင်းမှရှာတွေ့နိုင်ရန်အတွက် Compathath configuration ကိုပြုပြင်နိုင်သည်။ သို့သော်အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဤလုပ်ဆောင်မှုကိုမသင့်လျော်သောအသုံးပြုမှုသည်လုံခြုံရေးအန္တရာယ်များကိုယူဆောင်လာနိုင်သည်။ ဤဆောင်းပါးသည်ဤအန္တရာယ်များကိုစူးစမ်းလေ့လာသုံးသပ်ပြီးကျိုးကြောင်းဆီလျော်သောနည်းဗျူဟာများမှတဆင့်မည်သို့ကာကွယ်ရမည်ကိုလေ့လာပါမည်။

1 ။ set_include_path ၏အခြေခံအသုံးပြုမှု

PHP တွင် set_include_path function ကိုဖိုင်တစ်ခု၏ရှာဖွေရေးလမ်းကြောင်းကိုသတ်မှတ်ရန်အသုံးပြုသည်။ ဤလုပ်ဆောင်မှုသည် developer များက developer များက developer များအားပုံမှန်ဖိုင်အတွက်ထုံးစံအတိုင်းထည့်ရန်ခွင့်ပြုသည်။

ဥပမာ -

 <span><span><span class="hljs-title function_ invoke__">set_include_path</span></span><span>(</span><span><span class="hljs-string">'/var/www/myproject/includes'</span></span><span>);
</span></span>

ဤကုဒ်နံပါတ်သည် / var / www / myproject / myproject / myproject / php search file သို့လမ်းကြောင်းသို့ directory ထည့် သွင်းလိမ့်မည်။ ဤလမ်းကြောင်းမှတစ်ဆင့် PHP သည်ထိုလမ်းညွှန်တွင်ရှိသောဖိုင်များကို load လုပ်လိမ့်မည်။

 <span><span><span class="hljs-keyword">include</span></span><span> </span><span><span class="hljs-string">'myfile.php'</span></span><span>;
</span></span>

2 ။ လုံခြုံရေးအန္တရာယ်များ

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

2.1 လမ်းကြောင်းပြန်ပေးဆွဲ

အသုံးအများဆုံးစွန့်စားမှုတစ်ခုမှာလမ်းဖောက်လုပ်ခြင်းဖြစ်သည်။ developer များက setf_includude_path ကိုတိုက်ရိုက်သုံးစွဲသူများမှ 0 င်ရောက်သူများကမလုံခြုံသောလမ်းကြောင်းများသို့မဟုတ်ဖြတ်သန်းသောအရာများကိုအသုံးပြုသောအခါတိုက်ခိုက်သူသည်အန္တရာယ်ရှိသောဖိုင်များကို 0 င်ရန်ဤအင်္ဂါရပ်ကိုသုံးနိုင်သည်။ ထည့်သွင်းရန် အန္တရာယ်ရှိသောလမ်းကြောင်းများထည့်သွင်းခြင်းဖြင့်တိုက်ခိုက်သူသည် PHP ဝန်များကိုသယ်ဆောင်နိုင်သည့်ဖိုင်များကိုထိန်းချုပ်နိုင်ပြီးအထိခိုက်မခံသောအချက်အလက်များကိုပိတ်ဆို့ခြင်းသို့မဟုတ်စနစ်ကိုယိုစိမ့်သွားစေနိုင်သည်။

ဥပမာ -

အဆိုပါကုဒ်အောက်ပါအတိုင်းတည်ရှိပါက:

 <span><span><span class="hljs-variable">$path</span></span><span> = </span><span><span class="hljs-variable">$_GET</span></span><span>[</span><span><span class="hljs-string">'path'</span></span><span>];  </span><span><span class="hljs-comment">// အသုံးပြုသူအားဖြင့်ဝင်သောလမ်းကြောင်း</span></span><span>
</span><span><span class="hljs-title function_ invoke__">set_include_path</span></span><span>(</span><span><span class="hljs-variable">$path</span></span><span>);
</span></span>

attacker သည်အလားတူ ဥပမာအားဖြင့် lease.com/script.phpook=/tmp/mmp/malicious_code ကို 0 င်ရောက်ခြင်းအားဖြင့်အန္တရာယ်ရှိသောကုဒ်ကိုထည့်သွင်းခြင်းဖြင့်ထည့်သွင်းခြင်းဖြင့် ထည့်သွင်းခြင်း ဖြင့် 0 င်ရောက်နိုင်သည့်ဖိုင်လမ်းကြောင်းများထည့်သွင်းရန်။

2.2 local file တွင်အားနည်းချက် (LFI) ပါ 0 င်သည်။

PHP သည် set_include_path ကို မလုံခြုံသောလမ်းကြောင်းတစ်ခုကိုသတ်မှတ်ရန် PHP သည် PHP သည် PHP ကိုဒေသအတွင်းဖိုင်များသို့မဟုတ်စနစ်ဖိုင်များပင်ဖွင့်လှစ်နိုင်ပြီးလမ်းကြောင်းဆိုင်ရာ parameters များကို tamacting ဖြင့် local file inters inclision encerability (lFI) ကိုဖြစ်ပေါ်စေနိုင်သည်။ ၎င်းသည်အထိခိုက်မခံသောသတင်းအချက်အလက်ယိုစိမ့်မှုသို့မဟုတ်ဝေးလံခေါင်ဖျားသောကုဒ်ကွပ်မျက်မှုကို ဦး တည်စေနိုင်သည်။

2.3 မလိုအပ်သော directory ခွင့်ပြုချက်ကိုထိတွေ့

ထည့်သွင်းခြင်း အားဖြင့်, အကယ်. directory permissions များကိုစနစ်တကျထိန်းချုပ်ထားခြင်းမရှိပါကအခြားမသက်ဆိုင်သောဖိုင်များကိုတိုက်ခိုက်သူနှင့်ထိတွေ့နိုင်သည်။ ဥပမာအားဖြင့်အချို့သောလမ်းညွှန်များတွင်အထိခိုက်မခံသော configuration files များသို့မဟုတ် log files များပါ 0 င်နိုင်သည်။

3 ။ ကာကွယ်နည်း

3.1 အသုံးပြုသူ input ကိုစစ်ဆေးပါ

အရေးအကြီးဆုံးကြိုတင်ကာကွယ်မှုတစ်ခုမှာအသုံးပြုသူ input ကိုတိုက်ရိုက်ယုံကြည်ရန်မဟုတ်ပါ။ လမ်းကြောင်းများ၌ဖြတ်သန်းသွားသောအချက်အလက်အားလုံးကိုလမ်းကြောင်း၏လုံခြုံရေးကိုသေချာစေရန်တင်းကြပ်စွာအတည်ပြုပြီးစစ်ထုတ်သင့်သည်။ အလားအလာရှိသောလမ်းကြောင်းဆိုင်ရာဒြပ်စင်များကိုရှင်းလင်းရန် Basename functions များနှင့်အခြားနည်းလမ်းများကိုသင်အသုံးပြုနိုင်သည်။

ဥပမာ -

 <span><span><span class="hljs-variable">$path</span></span><span> = </span><span><span class="hljs-title function_ invoke__">basename</span></span><span>(</span><span><span class="hljs-variable">$_GET</span></span><span>[</span><span><span class="hljs-string">'path'</span></span><span>]);  </span><span><span class="hljs-comment">// ဖိုင်အမည်အပိုင်းကိုသာရယူပါ</span></span><span>
</span></span>

ဤနည်းလမ်းသည်အသုံးပြုသူသည်အခြားလမ်းညွှန်များမှလမ်းကြောင်းများမှတဆင့်အခြားလမ်းညွှန်များမှဖိုင်များကိုမရရှိနိုင်ကြောင်းသေချာစေလိမ့်မည်။

3.2 အလိုတော်မှာမ ပြုပြင် ပါနှင့်

၎င်းသည်အမှန်ပင်မလိုအပ်လျှင် set_includude_path function ကိုမကြာခဏအသုံးပြုခြင်းကိုရှောင်ပါ။ အကယ်. သင်သည်ဖိုင်များကိုပကတိသို့မဟုတ်ဆွေမျိုးလမ်းကြောင်းများမှတဆင့်တိုက်ရိုက်ပါ 0 င်နိုင်သည်ဆိုပါကသင် ထည့် သွင်းရန်မလိုအပ်ပါ။ configuration item ကိုလိုအပ်မှသာလျှင်ပြုပြင်မွမ်းမံရန်သေချာအောင်လုပ်ပါ။

3.3 ပုံသေလမ်းညွှန်များနှင့်ကိန်းဂဏန်းများကိုအသုံးပြုခြင်း

ဖွံ့ဖြိုးရေးစဉ်အတွင်းသတ်မှတ်ထားသော directory struction ကိုအသုံးပြုရန်နှင့် function call in term-count-code လမ်းကြောင်းအစား Constits မှတဆင့်လမ်းကြောင်းကိုသတ်မှတ်ရန်အကြံပြုသည်။ ဤနည်းအားဖြင့်ဖိုင်တွင်ပါရှိသောလမ်းကြောင်းများကိုပိုမိုကောင်းမွန်စွာထိန်းချုပ်နိုင်ပြီးဖြစ်နိုင်ချေရှိသောလမ်းပြပြ problems နာများကိုရှောင်ရှားနိုင်သည်။

ဥပမာ -

 <span><span><span class="hljs-title function_ invoke__">define</span></span><span>(</span><span><span class="hljs-string">'INCLUDE_PATH'</span></span><span>, </span><span><span class="hljs-string">'/var/www/myproject/includes'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">set_include_path</span></span><span>(INCLUDE_PATH);
</span></span>

ဤနည်းလမ်းသည်လမ်းကြောင်း၏တူညီသောစည်းမျဉ်းစည်းကမ်းများနှင့်လုံခြုံရေးကိုသေချာစေပြီးလမ်းကြောင်းအမှားများဖြစ်နိုင်ချေကိုလျှော့ချနိုင်သည်။

3.4 PHP's Allow_url_include setting ကိုပိတ်ပါ

ပြင်ပဖိုင်များကို URL မှတဆင့်မတင်ရန် Php.ini configuration တွင် Allow_url_include ကို သေချာအောင်လုပ်ပါ ဒီ configuration item ကိုဖွင့်ထားမယ်ဆိုရင်တိုက်ခိုက်သူက URL ကနေတဆင့်ပြင်ပအန္တရာယ်ရှိတဲ့ script ဖိုင်တွေကို url ကိုဖွင့်နိုင်တယ်။

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

အထူးသဖြင့်အထိခိုက်မခံနိုင်သောဖိုင်များသို့မဟုတ် configuration files များကိုရယူသည့်အခါဆာဗာပေါ်ရှိစာရင်းစစ်ဆေးခြင်းနှင့် Monitor ကိုကြည့်ရှုစစ်ဆေးသည်။ မှတ်တမ်းခွဲခြမ်းစိတ်ဖြာခြင်းအားဖြင့်ပုံမှန်မဟုတ်သောဖိုင်လက်လှမ်းမီမှုအပြုအမူကိုအချိန်မီပြန်လည်ပြုပြင်ရန်နှင့်ပြုပြင်ရန်အတွက်ပုံမှန်မဟုတ်သောဖိုင်များကိုတွေ့ရှိနိုင်သည်။

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

Set_includude_path သည် PHP တွင်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သော်လည်းမလျော်ကန်စွာအသုံးပြုပါကလုံခြုံရေးအားနည်းချက်များအရင်းအမြစ်ဖြစ်လာနိုင်သည်။ အလားအလာရှိသောလုံခြုံရေးအန္တရာယ်များကိုလျှော့ချရန် developer များကအကောင်းဆုံးလုံခြုံရေးအလေ့အကျင့်များကိုလိုက်နာခြင်း, အသုံးပြုသူထည့်သွင်းမှုအားလုံးကိုအတည်ပြုပြီး filter system ကိုကန့်သတ်ထားသည်။ ဖြစ်နိုင်သောနေရာတွင်မ ပြုပြင် ပါနှင့်။ တစ်ချိန်တည်းမှာပင်မှတ်တမ်းစောင့်ကြည့်လေ့လာခြင်းနှင့်စာရင်းစစ်ခြင်းတို့သည်အလားအလာရှိသောတိုက်ခိုက်မှုများကိုထိရောက်စွာတားဆီးနိုင်သည်။

ဤနည်းလမ်းများကသင်၏ PHP application များ၏လုံခြုံရေးကိုသေချာစေရန်အတွက်ပြောင်းလွယ်ပြင်လွယ်ရှိသောဖိုင်တင်ခြင်းယန္တရားများကိုနှစ်သက်စေရန်ခွင့်ပြုသည်။