လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> htmlspecialchars နှင့်အစားထိုးခြင်းမပြုမီ XSS အပြောင်းအလဲနဲ့ ()

htmlspecialchars နှင့်အစားထိုးခြင်းမပြုမီ XSS အပြောင်းအလဲနဲ့ ()

M66 2025-06-02

Web Development တွင် XSS (Cross-site Cross-site scripting attaching) သည်ဘုံနှင့်အန္တရာယ်ရှိသောလုံခြုံရေးအားနည်းချက်ဖြစ်သည်။ အန္တရာယ်ရှိသော script code ကိုထိုးသွင်းခြင်းအားဖြင့်တိုက်ခိုက်သူသည် 0 က်ဘ်စာမျက်နှာကိုကြည့်သောအခါအထိခိုက်မခံသောသတင်းအချက်အလက်များကိုခိုးယူသောအခါ, XSS တိုက်ခိုက်မှုများကိုကာကွယ်ရန် developer များသည်အသုံးပြုသူထည့်သွင်းမှု (သို့) ပြောင်းလဲနေသောအကြောင်းအရာများကိုတင်းကြပ်စွာ filter လုပ်ရန်နှင့်လွတ်မြောက်ရန်လိုအပ်သည်။

ဤဆောင်းပါးသည် HTMLSPECALCHARCHARCHANCHANCHANCHAR () function ကိုပိုမိုလုံခြုံစွာအစားထိုးခြင်းနှင့်ထုတ်လုပ်မှုကိုရရှိရန်အတွက် XSS တိုက်ခိုက်မှုများကိုအကာအကွယ်ပေးရန်နှင့်အစားထိုးစစ်ဆင်ရေးမတိုင်မီဘေးကင်းလုံခြုံစွာကိုင်တွယ်လုပ်ဆောင်ရန်အတွက်ဤဆောင်းပါးသည် MB_ereGiAgi_replace ( ) function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။


1 ။ XSS တိုက်ခိုက်မှုနှင့်ကာကွယ်မှု၏အခြေခံ

XSS တိုက်ခိုက်မှုများသည်အဓိကအားဖြင့် browser ၏ဘေးတွင်ဖြစ်ပေါ်သည်။ တိုက်ခိုက်သူသည် browser လုပ်ပြီးနောက်တိုက်ခိုက်မှုနောက်မှတိုက်ခိုက်ရန် ဦး တည်သည့်တိုက်ခိုက်သူသည်အန္တရာယ်ရှိသည့် scripts များကိုထည့်သွင်းထားသည်။ ကာကွယ်စောင့်ရှောက်ရေး၏သော့သည်အသုံးပြုသူထည့်သွင်းမှုအကြောင်းအရာကိုစစ်ထုတ်ခြင်းနှင့်ထွက်ပြေးတိမ်းရှောင်ခြင်းတို့တွင်ဖြစ်သည်။

  • Filter : အန္တရာယ်ရှိသော tags များ, ဂုဏ်သတ္တိများများ, ဂုဏ်သတ္တိများနှင့် script များကိုဖယ်ရှားပါသို့မဟုတ်အစားထိုးပါ။

  • Escape : အထူး HTML ဇာတ်ကောင်များကို Entmls မှလွတ်မြောက်ရန်အဖွဲ့အစည်းများသို့ထွက်ပြေးရန်အဖွဲ့အစည်းများသို့ထွက်ပြေးပါ။

PHP ၏ htmlspecialchars () function သည် XSS ကိုကာကွယ်ရန်ဘုံနည်းလမ်းဖြစ်သည်။ ၎င်းသည် <> "နှင့် သက်ဆိုင်သောအက္ခရာများကိုသက်ဆိုင်ရာ HTML အဖွဲ့အစည်းများသို့ပြောင်းလဲခြင်း,


2 ။ mb_eregi_replace function ကိုမိတ်ဆက်ခြင်း

MB_eregi_replace () PHP တွင် Multi-byte ကြိုးများအတွက်လုံခြုံစွာပုံမှန်အစားထိုးလုပ်ဆောင်ချက်ဖြစ်သည်။ ၎င်းသည်အမှုန်အာရုံမခံစားနိုင်သောပုံမှန်ကိုက်ညီမှုကိုထောက်ပံ့ပေးပြီးတရုတ်ကဲ့သို့သော byte အက္ခရာများပါ 0 င်သော strings များပြုလုပ်ရန်သင့်တော်သည်။

သဒ္ဒါ:

 mb_eregi_replace($pattern, $replacement, $string);

၎င်းကိုအထိခိုက်မခံသောစကားလုံးများသို့မဟုတ်ကြိုးများ၌အန္တရာယ်ရှိသည့်အကြောင်းအရာများကိုအစားထိုးရန်နှင့်အစားထိုးရန်နှင့်အစားထိုးရန်အသုံးပြုနိုင်ပြီးအကြောင်းအရာစစ်ထုတ်ခြင်းအတွက်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။


3 ။ MB_eregi_replace နှင့် HTMLSPECALCHAR ကို XSS ကာကွယ်မှုကိုအကောင်အထည်ဖော်ရန်

  1. ပထမ ဦး စွာ htmlspecialchars () input string ကိုမှလွတ်မြောက်ရန် ၎င်းသည်အန္တရာယ်ရှိသော HTML သို့မဟုတ် JS Code ကို browser မှတိုက်ရိုက်ကွပ်မျက်ခံရခြင်းမှကာကွယ်ပေးသည်။

  2. ထို့နောက် MB_ereGi_re_replace () ကို အသုံးပြု. အထိခိုက်မခံသောစကားလုံးများသို့မဟုတ်အန္တရာယ်ရှိသော tags များကိုအစားထိုးရန် (သို့) အစားထိုးရန် ဥပမာအားဖြင့်ကျန်ရှိနေသေးသောတိုက်ခိုက်မှု scripts များကိုရှောင်ရှားရန် <script> tag ကိုလုံခြုံသောစာသားဖြင့်အစားထိုးပါ။

  3. မည်သည့်ဆေးထိုးခြင်းကိုတားဆီးရန် လုံခြုံပြုပြင်ပြီးနောက်မှပါ 0 င်သောအရာများကိုထုတ်ပေးသည်


4 ။ နမူနာကုဒ်

 <?php
// အသုံးပြုသူထည့်သွင်းအကြောင်းအရာ,အန္တရာယ်ရှိသော scripts ဆံ့နိုငျသညျ
$input = '<script>alert("XSSတိုက်ခိုက်ခြင်း")</script><b>ပုံမှန်စာသား</b>';

// ပထမခြေလှမ်း:ပထမ ဦး ဆုံးလွတ်မြောက်ရန်HTMLအထူးအက္ခရာများ,browser ကို Scripts မှကာကွယ်ခြင်းမှတားဆီးပါ
$safe_input = htmlspecialchars($input, ENT_QUOTES, 'UTF-8');

// အဆင့် 2:အထိခိုက်မခံသောစကားလုံးများသို့မဟုတ် tags များကိုအစားထိုးပါ,ဒီမှာ<script>ဥပမာတစ်ခုအနေဖြင့်,အစားထိုးလိုက်ပါ“[ပိတ်ပင်ထားသော tags များ]”
$pattern = '<script.*?>.*?</script>';
$replacement = '[ပိတ်ပင်ထားသော tags များ]';

// အသုံးပြုmb_eregi_replaceအထိခိုက်မခံ tags များကိုအစားထိုးပါ,အမှုကိုလျစ်လျူရှုပါ
$filtered_input = mb_eregi_replace($pattern, $replacement, $safe_input);

// လုပ်ငန်းများ၌ပါဝင်မှု output ကို
echo $filtered_input;
?>

Code ဖော်ပြချက်:

  • script execution ကိုကာကွယ်ရန် htmlspecialchars () < , > အဖွဲ့အစည်းများအဖြစ်သင်္ကေတများကိုလွတ်မြောက်ရန်။

  • MB_ereGi_replace () ကို <script> tag နှင့်ကိုက်ညီရန်နှင့်အမှုကိုလျစ်လျူရှုရန်နှင့်ချက်ချင်းစာသားဖြင့်အစားထိုးရန်အသုံးပြုသည်။

  • ဤနည်းအားဖြင့် input တွင်ရှုပ်ထွေးသောအသေးပေါင်းစပ်ထားသော tags များပါ 0 င်ပါကပင်၎င်းကိုလုံခြုံစွာ filtered လုပ်နိုင်သည်။


5 ။ မှတ်စုဖို့အရာ

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

  • filtering သည်အမြင့်မြတ်ဆုံးမဟုတ်ဘဲအဖြူရောင်ဝါဒီများ၏မူဝါဒများနှင့်အကြောင်းအရာလုံခြုံရေးမူဝါဒများ (CSP) ကိုပေါင်းစပ်။ ပိုမိုထိရောက်သည်။

  • မတူညီသောပတ်ဝန်းကျင် (HTML, JavaScript, URL စသည်တို့) ၏ရလဒ်များ (HTML, JavaScript, URL စသည်တို့) ကိုသက်ဆိုင်ရာလုံခြုံရေးစွမ်းဆောင်ရည်ပြုလုပ်ရန်လိုအပ်သည်။

  • MB_ereGi_replace () သည် byte byte ပတ် 0 န်းကျင်အတွက်သင့်တော်ပြီး condbled code ကိုရှောင်ရှားသည်။


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

HTMLSPECALCHARCHARCHARS ( ) function ကို အသုံးပြု. အသုံးပြုသူ input ကိုပထမ ဦး ဆုံး Excaping မှထွက်ပြေးတိမ်းရှောင်ခြင်းအားဖြင့် PHP PHP applications ၏ XSS ကာကွယ်မှုစွမ်းရည်ကိုထိရောက်စွာတိုးတက်အောင်လုပ်နိုင်သည်။ အမှန်တကယ်စီမံကိန်းများတွင်ထိုကဲ့သို့သော Multi-layer security processing သည်လုံခြုံရေးအန္တရာယ်များကိုများစွာလျော့နည်းစေပြီးအသုံးပြုသူအချက်အလက်နှင့်စနစ်လုံခြုံရေးကိုကာကွယ်နိုင်သည်။


နမူနာကုဒ်တွင်ပါ 0 င်သောနမူနာ url domain name

 $url = "https://m66.net/path/to/resource";
echo "<a href=\"$url\">လုံခြုံ links များ</a>";