PHP တွင် exploit function သည်အသုံးပြုလေ့ရှိသော string processing processing function တစ်ခုဖြစ်သည်။ တရုတ်ကြိုးများကိုကိုင်တွယ်သောအခါ exploit function ကို သုံး. concled ပြ problems နာများကိုသင်ကြုံတွေ့ရနိုင်သည်။ ၎င်းသည်များသောအားဖြင့်မကိုက်ညီသောဇာတ်ကောင် encoding သို့မဟုတ်မသင့်လျော်သောခွဲခြမ်းစိတ်ဖြာမှုများကြောင့်ဖြစ်သည်။ ထို့ကြောင့်တရုတ်ကြိုးများကိုပြုပြင်သည့်အခါ developer များက ellled code ကို အသုံးပြု. exploit code ကိုအသုံးပြုခြင်းကိုအသုံးပြုခြင်းအားဖြင့်တရုတ်အက္ခရာများကိုမှန်ကန်စွာလုပ်ဆောင်နိုင်အောင်အသေးစိတ်အချက်အလက်များကိုအထူးဂရုပြုရန်လိုအပ်သည်။
PHP တွင် exploit function သည် bytes အပေါ် အခြေခံ. ကြိုးများကိုခွဲထုတ်ရန်ပုံမှန်အားဖြင့်ဖြစ်သည်။ အကယ်. string ၏ encoding format သည်စနစ်၏ encoding နှင့်မကိုက်ညီပါကအထူးသဖြင့်တရုတ်စာလုံးများကိုပြုပြင်သည့်အခါ concled code သည်ပေါ်ပေါက်လာသည်။ ပုံမှန်အားဖြင့်တရုတ် strings ကို UTF-8 encoding format များတွင်သိမ်းဆည်းထားပြီး Exploit function သည် encoding ကိုမှန်ကန်စွာမသတ်မှတ်သည့်အခါဤစာလုံးများကိုမှန်ကန်စွာအသိအမှတ်မပြုနိုင်ပါ။
encoding ပြ problems နာများကိုရှောင်ရှားရန် exploit အသုံးမပြုမီသင်ဇာတ်ကောင် encoding ကိုပေါင်းစည်းနိုင်သည်။ Exploit function ကိုမှန်ကန်စွာကိုင်တွယ်နိုင်အောင် MB_ConVert_encoding function ကိုသုံးနိုင်သည်။ ဥပမာအားဖြင့်:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"မင်္ဂလာပါ,ကမ်ာဘ,ဝမ်းသာစွာနှုတ်ဆက်ခြင်းPHP"</span></span><span>;
</span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_convert_encoding</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</span></span><span>, </span><span><span class="hljs-string">"auto"</span></span><span>); </span><span><span class="hljs-comment">// ကူးပြောင်းUTF-8ကုဒ်</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">explode</span></span><span>(</span><span><span class="hljs-string">","</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>ဤဥပမာတွင် MB_ConVert_encoding ကို UTF-8 encoding သို့ပြောင်းရန် MB_ConVert_encoding ကိုအသုံးပြုခဲ့သည်။ ဤနည်းအားဖြင့် input string ၏ encoding format မည်သို့ပင်ဖြစ်ပါစေ အမြတ်ထုတ်မှုသည် ပုံမှန်အားဖြင့်တရုတ်စာလုံးများကိုပုံမှန်ကိုင်တွယ်နိုင်သည်။
Exploit function ကိုအသုံးပြုပြီးကြိုးများကိုခွဲထုတ်သောအခါခွဲထုတ်ရွေးချယ်ခြင်းအတွက်အထူးဂရုပြုရန်လိုအပ်သည်။ အထူးသဖြင့်အထူးဇာတ်ကောင်များသို့မဟုတ်သင်္ကေတများပါ 0 င်သည့်အခါတရုတ်ကြိုးများကိုပြုပြင်သည့်အခါ delimiters သည်ရလဒ်များကိုအကျိုးသက်ရောက်နိုင်သည်။ ဥပမာအားဖြင့်, delimiter သည်တရုတ်သင်္ကေတ ("နှင့်တရုတ်ကော်မာများကဲ့သို့သောသင်္ကေတတစ်ခုဖြစ်သောအခါ exploit သည် delimiter ကိုမှန်ကန်စွာခွဲခြား သတ်မှတ်. မရပါ, မမှန်ကန်ပါ။
တရုတ် string processing တွင် delimiter သည် string ရှိဇာတ်လမ်းများကိုအထူးသဖြင့် delimiter သည်တရုတ်သင်္ကေတတစ်ခုဖြစ်သောအခါအခြားဇာတ်ကောင်များနှင့်မရောထွေးရန်သတိထားပါ။ အကယ်. သင်သည်ခွဲခြမ်းစိတ်ဖြာခြင်း၏ encoding နှင့် ပတ်သက်. မသေချာပါက Sectorator ၏တိကျသော encoding ကိုအတည်ပြုရန် String ၏ hexadecimal ကိုယ်စားပြုမှုကိုပထမဆုံးအကြိမ်ထုတ်လွှင့်နိုင်သည်။ ဥပမာအားဖြင့်:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"မင်္ဂလာပါ,ကမ်ာဘ,ဝမ်းသာစွာနှုတ်ဆက်ခြင်းPHP"</span></span><span>; </span><span><span class="hljs-comment">// တရုတ်ကော်မာ</span></span><span>
</span><span><span class="hljs-variable">$delimiter</span></span><span> = </span><span><span class="hljs-string">","</span></span><span>; </span><span><span class="hljs-comment">// တရုတ်ကော်မာ作为分隔符</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">explode</span></span><span>(</span><span><span class="hljs-variable">$delimiter</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>ဒီဥပမာမှာတရုတ်ကော်မာကို "" ဒီဥပမာကိုသုံးပြီးဒီလိုမျိုး "" ဆိုတဲ့ "" ကိုသုံးပြီးစူးစမ်း လေ့လာနိုင်ပါတယ် ။
တရုတ်အက္ခရာများပါ 0 င်သောကြိုးများပါ 0 င်သည့်အခါ သင် PHP ၏ Multibyte String function (Mbstring extension function ကိုအသုံးပြုရန်စဉ်းစားနိုင်သည်။ MB_Split function သည် exploit function ၏ multibyte ဗားရှင်းဖြစ်ပြီးတရုတ်ကြိုးများကိုပိုမိုကောင်းမွန်စွာကိုင်တွယ်နိုင်သည်။
MB_SPLIT function ကို Multibyte အက္ခရာများကိုထုတ်လုပ်ရန်အသုံးပြုနိုင်သည်။ တရုတ်ကြိုးများကိုပြုပြင်သည့်အခါ၎င်းသည်ဇာတ်ကောင်အရှည်သို့မဟုတ် encoding ပြ issues နာများကြောင့်မထိခိုက်ပါ။ ဥပမာများမှာအောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"မင်္ဂလာပါ,ကမ်ာဘ,ဝမ်းသာစွာနှုတ်ဆက်ခြင်းPHP"</span></span><span>;
</span><span><span class="hljs-variable">$delimiter</span></span><span> = </span><span><span class="hljs-string">","</span></span><span>; </span><span><span class="hljs-comment">// တရုတ်ကော်မာ作为分隔符</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_split</span></span><span>(</span><span><span class="hljs-variable">$delimiter</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>Exploit function နှင့်ဆင်တူသည်, MB_Split သည် strings များကိုသတ်မှတ်ထားသော delimiters များဖြင့်ခွဲထားနိုင်သည်။
exploit function သည် string တစ်ခုကွဲသွားသောအခါ, အကယ်. ကြိုးထဲမှာတရုတ်ဇာတ်ကောင်တွေအများကြီးရှိရင်ဒါမှမဟုတ် delimiter ပြီးနောက်နေရာမရှိဘူးဆိုရင် split Array element တွေနဲ့ပြ problems နာတွေဖြစ်စေနိုင်တယ်။ ထို့အပြင် exploit function ကိုပုံမှန်အားဖြင့် bytes အပေါ် အခြေခံ. လုပ်ငန်းများ၌တည်ရှိသည်, ထို့ကြောင့်အချို့သောဇာတ်ကောင်များသည်မှားယွင်းစွာခွဲထွက်နိုင်သည်။
စူးစမ်းလေ့လာခြင်း မပြုမီ, ဇာတ်ကောင်တစ် ဦး စီကိုမှန်ကန်စွာလုပ်ဆောင်ရန်သေချာစေရန် string ကိုအရှည်ကိုစစ်ဆေးရန် MB_strinlen function ကိုသုံးနိုင်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"မင်္ဂလာပါ,ကမ်ာဘ,ဝမ်းသာစွာနှုတ်ဆက်ခြင်းPHP"</span></span><span>;
</span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_strlen</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"အဆိုပါ string ကိုအရှည်သည်:<span class="hljs-subst">$length</span></span></span><span>\n"; </span><span><span class="hljs-comment">// output string ကို၏အရှည်</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">explode</span></span><span>(</span><span><span class="hljs-string">","</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>string length ကို MB_strinlen မှတဆင့်စစ်ဆေးပြီးနောက်ဇာတ်ကောင်တစ် ဦး ချင်းစီကိုတိကျစွာခွဲနိုင်အောင်သေချာအောင်လုပ်ပါ။
Exploit function ကို အသုံးပြု. တရုတ်ကြိုးများကိုလုပ်ဆောင်ရန်အတွက်အထူးဂရုပြုသင့်သည်။ MB_ConVert_encoding ကို encoding ပြောင်းခြင်းအတွက်, သင့်လျော်သောခွဲခြမ်းစိတ်ဖြာခြင်းကိုရွေးချယ်ပြီး MB_SPLIT ကဲ့သို့သော Multi-byte string function များကိုအသုံးပြုခြင်းအားဖြင့်, mb_split ကဲ့သို့သော multi-byte string function များကိုအသုံးပြုခြင်း, ဤကျွမ်းကျင်မှုများကိုကျွမ်းကျင်ခြင်းသည်တရုတ်ကြိုးများကိုင်တွယ်ခြင်းနှင့် encoding ပြ problems နာများကြောင့်ဖြစ်ပေါ်လာသောပြ troubl နာများကိုလျှော့ချသောအခါ developer များကိုပိုမိုသက်သာစေသည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
explode