Set_includude_path သည် PHP ရှိ function တစ်ခုဖြစ်ပြီးဖိုင်အတွင်းရှိလမ်းကြောင်းများကိုသတ်မှတ်ရန်ဖြစ်သည်။ PHP သည်ဖိုင်များကိုရှာဖွေနေသည့်အခါ PHP ကိုသတ်မှတ်ထားသောလမ်းကြောင်းစာရင်းမှရှာတွေ့နိုင်ရန်အတွက် Compathath configuration ကိုပြုပြင်နိုင်သည်။ သို့သော်အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဤလုပ်ဆောင်မှုကိုမသင့်လျော်သောအသုံးပြုမှုသည်လုံခြုံရေးအန္တရာယ်များကိုယူဆောင်လာနိုင်သည်။ ဤဆောင်းပါးသည်ဤအန္တရာယ်များကိုစူးစမ်းလေ့လာသုံးသပ်ပြီးကျိုးကြောင်းဆီလျော်သောနည်းဗျူဟာများမှတဆင့်မည်သို့ကာကွယ်ရမည်ကိုလေ့လာပါမည်။
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>
set_include_path သည် ဖွံ့ဖြိုးတိုးတက်မှုအတွက်အလွန်အဆင်ပြေစွာအဆင်ပြေသော်လည်းအထူးသဖြင့်ပြင်ပတိုက်ခိုက်သူများအတွက်သတိထားမိခြင်းနှင့်မကိုင်တွယ်နိုင်ပါကလုံခြုံရေးအားနည်းချက်များဖြစ်ပေါ်စေသည်။
အသုံးအများဆုံးစွန့်စားမှုတစ်ခုမှာလမ်းဖောက်လုပ်ခြင်းဖြစ်သည်။ 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 င်ရောက်နိုင်သည့်ဖိုင်လမ်းကြောင်းများထည့်သွင်းရန်။
PHP သည် set_include_path ကို မလုံခြုံသောလမ်းကြောင်းတစ်ခုကိုသတ်မှတ်ရန် PHP သည် PHP သည် PHP ကိုဒေသအတွင်းဖိုင်များသို့မဟုတ်စနစ်ဖိုင်များပင်ဖွင့်လှစ်နိုင်ပြီးလမ်းကြောင်းဆိုင်ရာ parameters များကို tamacting ဖြင့် local file inters inclision encerability (lFI) ကိုဖြစ်ပေါ်စေနိုင်သည်။ ၎င်းသည်အထိခိုက်မခံသောသတင်းအချက်အလက်ယိုစိမ့်မှုသို့မဟုတ်ဝေးလံခေါင်ဖျားသောကုဒ်ကွပ်မျက်မှုကို ဦး တည်စေနိုင်သည်။
ထည့်သွင်းခြင်း အားဖြင့်, အကယ်. directory permissions များကိုစနစ်တကျထိန်းချုပ်ထားခြင်းမရှိပါကအခြားမသက်ဆိုင်သောဖိုင်များကိုတိုက်ခိုက်သူနှင့်ထိတွေ့နိုင်သည်။ ဥပမာအားဖြင့်အချို့သောလမ်းညွှန်များတွင်အထိခိုက်မခံသော configuration files များသို့မဟုတ် log files များပါ 0 င်နိုင်သည်။
အရေးအကြီးဆုံးကြိုတင်ကာကွယ်မှုတစ်ခုမှာအသုံးပြုသူ 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>
ဤနည်းလမ်းသည်အသုံးပြုသူသည်အခြားလမ်းညွှန်များမှလမ်းကြောင်းများမှတဆင့်အခြားလမ်းညွှန်များမှဖိုင်များကိုမရရှိနိုင်ကြောင်းသေချာစေလိမ့်မည်။
၎င်းသည်အမှန်ပင်မလိုအပ်လျှင် set_includude_path function ကိုမကြာခဏအသုံးပြုခြင်းကိုရှောင်ပါ။ အကယ်. သင်သည်ဖိုင်များကိုပကတိသို့မဟုတ်ဆွေမျိုးလမ်းကြောင်းများမှတဆင့်တိုက်ရိုက်ပါ 0 င်နိုင်သည်ဆိုပါကသင် ထည့် သွင်းရန်မလိုအပ်ပါ။ configuration item ကိုလိုအပ်မှသာလျှင်ပြုပြင်မွမ်းမံရန်သေချာအောင်လုပ်ပါ။
ဖွံ့ဖြိုးရေးစဉ်အတွင်းသတ်မှတ်ထားသော 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>
ဤနည်းလမ်းသည်လမ်းကြောင်း၏တူညီသောစည်းမျဉ်းစည်းကမ်းများနှင့်လုံခြုံရေးကိုသေချာစေပြီးလမ်းကြောင်းအမှားများဖြစ်နိုင်ချေကိုလျှော့ချနိုင်သည်။
ပြင်ပဖိုင်များကို URL မှတဆင့်မတင်ရန် Php.ini configuration တွင် Allow_url_include ကို သေချာအောင်လုပ်ပါ ။ ဒီ configuration item ကိုဖွင့်ထားမယ်ဆိုရင်တိုက်ခိုက်သူက URL ကနေတဆင့်ပြင်ပအန္တရာယ်ရှိတဲ့ script ဖိုင်တွေကို url ကိုဖွင့်နိုင်တယ်။
အထူးသဖြင့်အထိခိုက်မခံနိုင်သောဖိုင်များသို့မဟုတ် configuration files များကိုရယူသည့်အခါဆာဗာပေါ်ရှိစာရင်းစစ်ဆေးခြင်းနှင့် Monitor ကိုကြည့်ရှုစစ်ဆေးသည်။ မှတ်တမ်းခွဲခြမ်းစိတ်ဖြာခြင်းအားဖြင့်ပုံမှန်မဟုတ်သောဖိုင်လက်လှမ်းမီမှုအပြုအမူကိုအချိန်မီပြန်လည်ပြုပြင်ရန်နှင့်ပြုပြင်ရန်အတွက်ပုံမှန်မဟုတ်သောဖိုင်များကိုတွေ့ရှိနိုင်သည်။
Set_includude_path သည် PHP တွင်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သော်လည်းမလျော်ကန်စွာအသုံးပြုပါကလုံခြုံရေးအားနည်းချက်များအရင်းအမြစ်ဖြစ်လာနိုင်သည်။ အလားအလာရှိသောလုံခြုံရေးအန္တရာယ်များကိုလျှော့ချရန် developer များကအကောင်းဆုံးလုံခြုံရေးအလေ့အကျင့်များကိုလိုက်နာခြင်း, အသုံးပြုသူထည့်သွင်းမှုအားလုံးကိုအတည်ပြုပြီး filter system ကိုကန့်သတ်ထားသည်။ ဖြစ်နိုင်သောနေရာတွင်မ ပြုပြင် ပါနှင့်။ တစ်ချိန်တည်းမှာပင်မှတ်တမ်းစောင့်ကြည့်လေ့လာခြင်းနှင့်စာရင်းစစ်ခြင်းတို့သည်အလားအလာရှိသောတိုက်ခိုက်မှုများကိုထိရောက်စွာတားဆီးနိုင်သည်။
ဤနည်းလမ်းများကသင်၏ PHP application များ၏လုံခြုံရေးကိုသေချာစေရန်အတွက်ပြောင်းလွယ်ပြင်လွယ်ရှိသောဖိုင်တင်ခြင်းယန္တရားများကိုနှစ်သက်စေရန်ခွင့်ပြုသည်။