လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> XSS တိုက်ခိုက်မှုများကိုကာကွယ်ရန် MB_scrub နှင့် HTMLSPECANCALCHAR ကိုမည်သို့ပေါင်းစပ်ရမည်နည်း။

XSS တိုက်ခိုက်မှုများကိုကာကွယ်ရန် MB_scrub နှင့် HTMLSPECANCALCHAR ကိုမည်သို့ပေါင်းစပ်ရမည်နည်း။

gitbox 2025-07-17

Cross-site scripting တိုက်ခိုက်မှု (XSS) သည်ဘုံနှင့် 0 က်ဘ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်အန္တရာယ်ရှိသောလုံခြုံရေးခြိမ်းခြောက်မှုတစ်ခုဖြစ်သည်။ အန္တရာယ်ရှိတဲ့ script code ကိုထိုးသွင်းခြင်းအားဖြင့်တိုက်ခိုက်သူက browser ကိုမမျှော်လင့်သောအပြုအမူများကိုပြုလုပ်စေပြီးသုံးစွဲသူသတင်းအချက်အလက်, XSS ကိုကာကွယ်ရန် developer များသည်များသောအားဖြင့်များသောအားဖြင့်သုံးစွဲသူများကိုတင်းကြပ်စွာ filter လုပ်ပြီး employ input ကို encode ။ PHP တွင် htmlspecialchars () သည်အသုံးအများဆုံးကာကွယ်မှုနည်းလမ်းများအနက်မှတစ်ခုဖြစ်သည်။ သို့သော်အသုံးပြုသူမှတင်ပြသောအကြောင်းအရာသည်မမှန်ကန်တဲ့သို့မဟုတ်တရားမ 0 င်သောဇာတ်ကောင်အစီအစဉ်များပါ 0 င်ပါက Htmlspecialchars () တစ် ဦး တည်းအသုံးပြုခြင်းသည်အားနည်းချက်ကိုလုံးဝမတားဆီးနိုင်ပါ။ ဤအချိန်တွင် MB_Scrub () ကို အားကောင်းတဲ့အပြောင်းအလဲအတွက်ပေါင်းစပ်ရန်လိုအပ်သည်။

MB_scrub ဆိုတာဘာလဲ။

MB_Scrub () သည် PHP 8.2 တွင်မိတ်ဆက်ပေးသော PHP 8.2 တွင်မိတ်ဆက်ပေးသော function တစ်ခုဖြစ်သည်။ ၎င်းသည်တရားမဝင်ဇာတ်ကောင်များပါ 0 င်သည့် Multibyte string တစ်ခုပြုလုပ်ရန်အသုံးပြုသည်။ အကယ်. Multi-byte အက္ခရာများကိုဂီယာသို့မဟုတ်အပြောင်းအလဲနဲ့အနေဖြင့်ဖြတ်သန်းပါကမမှန်ကန်သောဇာတ်ကောင် sequence ကိုဖွဲ့စည်းနိုင်သည်။ အကယ်. ဤတရားမ 0 င်သောအစီအစဉ်ကို HTMMLSPECALCALCHARS သို့တိုက်ရိုက်ဖြတ်သန်းသွားပါကအချို့သောအခြေအနေများတွင်မျှော်မှန်းထားသည့်ယန္တရားကိုကျော်လွှားနိုင်သည်။

ဥပမာအားဖြင့်တရားမ 0 င် UTF-8 byte sequence ကို browser တွင်အမှားအယွင်းများဖြင့်ခွဲထုတ်နိုင်ပြီး Script Injection ကိုပြုလုပ်နိုင်သည်။

 <span><span><span class="hljs-comment">// နမူနာ:တရားမဝင် bytes ပါဝင်သော input ကို</span></span><span>
</span><span><span class="hljs-variable">$input</span></span><span> = </span><span><span class="hljs-string">"\xC0&lt;script&gt;alert('XSS');&lt;/script&gt;"</span></span><span>;

</span><span><span class="hljs-comment">// တိုက်ရိုက်အသုံးပြုပါ htmlspecialchars(စိတ်မချသော)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">htmlspecialchars</span></span><span>(</span><span><span class="hljs-variable">$input</span></span><span>, ENT_QUOTES, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
</span></span>

အထက်ပါဥပမာတွင် $ input သည် တရားမ 0 င် UTF-8 bytes ပါ 0 င်ပါက browser သည်ဤ bytes များကိုလျစ်လျူရှုပြီးနောက်ဆက်တွဲ <script> tags များကို execute လုပ်နိုင်လိမ့်မည်။

HTMLSPECALACALCHARS ဖြင့် MB_ScRUP ကိုမည်သို့အသုံးပြုရမည်နည်း။

ဤပြ problem နာကိုဖြေရှင်းရန်ကျွန်ုပ်တို့သည် string ကိုသန့်ရှင်းရေးလုပ်ရန် MB_Scrub () ကို ဦး စွာသုံးနိုင်သည်။

 <span><span><span class="hljs-comment">// ဘေးကင်းလုံခြုံမှုအလေ့အကျင့်:ပထမ ဦး ဆုံးစင်ကြယ်,နောက်တဖန်လွတ်မြောက်ရန်</span></span><span>
</span><span><span class="hljs-variable">$clean</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_scrub</span></span><span>(</span><span><span class="hljs-variable">$input</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
</span><span><span class="hljs-variable">$safe</span></span><span> = </span><span><span class="hljs-title function_ invoke__">htmlspecialchars</span></span><span>(</span><span><span class="hljs-variable">$clean</span></span><span>, ENT_QUOTES, </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-variable">$safe</span></span><span>;
</span></span>

ဤပေါင်းစပ်မှု၏အားသာချက်များမှာ -

  1. MB_scrub () သည်ဇာတ်ကောင်ပာ်၏တရားဝင်မှုကိုအာမခံသည်

  2. HTMLSPECALCHARS () tag experies: tag said : ပြောင်းလဲခြင်း < , > , " ,

လက်တွေ့ကျသောအကြံဥာဏ်

  1. Cross-platform တစ်ခုနှင့်ပလက်ဖောင်းကိုသေချာစေရန် UTF-8 သို့သတ်မှတ်သည့်စာလုံးကိုအမြဲတမ်းသတ်မှတ်ပါ

  2. သုံးစွဲသူထည့်သွင်းမှုအားလုံးကိုသန့်ရှင်းစင်ကြယ်စေပြီး အထူးသဖြင့် HTML သို့ output ကို။

  3. XSS အန္တရာယ်များကိုထပ်မံလျှော့ချရန် အကြောင်းအရာ - လုံခြုံရေးမူဝါဒ (CSP) ဖြင့်အသုံးပြုခြင်း

  4. MB_Scrub () function ကိုအသုံးပြုရန် PHP 8.2 သို့မဟုတ်နောက်ပိုင်းတွင်အဆင့်မြှင့်တင်ရန်

အကျဉ်းချုပ်

Htmlspecialchars () သည် XSS ကိုကာကွယ်ရန်အခြေခံကိရိယာတစ်ခုဖြစ်သော်လည်း Omnipotent မဟုတ်ပါ။ အသုံးပြုသူ input တွင်တရားမ 0 င်ဇာတ်ကောင် encoding ပါ 0 င်ပါက၎င်းသည်လုံခြုံရေးအားနည်းချက်ဖြစ်စေနိုင်သည်။ MB_Scrub () ကိုထည့်သွင်းခြင်းအားဖြင့်တရားမ 0 င်အက္ခရာများကိုထိထိရောက်ရောက်ရှင်းလင်းစွာရှင်းလင်းနိုင်ပြီးကာကွယ်မှုစွမ်းအားကိုမြှင့်တင်ပေးနိုင်သည်။ PHP သည်လုံခြုံရေးစံချိန်စံညွှန်းများကိုလိုက်စားသော PHP developer များအတွက်ဤပေါင်းစပ်မှုသည်မြှင့်တင်ရန်ဖြစ်သည်။