လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> XSS ကိုကာကွယ်ရန် HTMLSPECALCHAR () နှင့် တွဲဖက်. sprintf ကိုသုံးပါ

XSS ကိုကာကွယ်ရန် HTMLSPECALCHAR () နှင့် တွဲဖက်. sprintf ကိုသုံးပါ

gitbox 2025-04-28

Web Development တွင် XSS (Cross-Site Cross-site Cross-site scripting တိုက်ခိုက်မှုများ) ကိုကာကွယ်ခြင်းသည်အသုံးပြုသူအချက်အလက်များ၏လုံခြုံရေးကိုသေချာစေရန်အရေးကြီးသောတာဝန်တစ်ခုဖြစ်သည်။ PHP သည် HTMLSPECALCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHAR () function ကိုထောက်ပံ့ပေးသည်။ Sprintf () function သည်အထူးသဖြင့် HTML ကို dynamically ကိုတည်ဆောက်သည့်အခါကြိုးများကိုပုံစံများကို format လုပ်ရန်အသုံးပြုလေ့ရှိသည်။

ဤဆောင်းပါးတွင် SPRINTF () နှင့် htmlspecialchars () နှင့် htmlspecialchars () နှင့် htmlspecialchars များကိုမည်သို့တည်ဆောက်ရမည်ကိုရှင်းပြပါမည်။

1 ။ Xss ဆိုတာဘာလဲ။

XSS Attack သည်တိုက်ခိုက်သူတစ် ဦး အားဝက်ဘ်စာမျက်နှာသို့အန္တရာယ်ရှိသော scripts များကိုထိုးသွင်းရန်ရည်ညွှန်းသည်။ အသုံးပြုသူသည် 0 က်ဘ်စာမျက်နှာကို browsel လုပ်ပြီးသည်နှင့်ဤ scripts သည် cookies များကိုခိုးယူခြင်း, စာမျက်နှာများကိုကြည့်ရှုခြင်း,

2 ။ htmlspecialchars () ကိုမိတ်ဆက်ခြင်း ()

htmlspecialchars () သည် HTML ရှိအထူးအက္ခရာများ ကို HTML အဖွဲ့အစည်းများအဖြစ်သို့ရောက်သည်။ ဤနည်းအားဖြင့်အသုံးပြုသူ input တွင် script tags များပါ 0 ်ပါက၎င်းကိုအမှန်တကယ်ကုဒ်သို့ခွဲခြားလိမ့်မည်မဟုတ်ပါ

 $user_input = '<script>alert("XSS")</script>';
$safe_output = htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8');

echo $safe_output;
// ထုတ်လုပ်ခြင်း:&lt;script&gt;alert(&quot;XSS&quot;)&lt;/script&gt;

iii ။ Sprintf မှနိဒါန်း ()

Sprintf () သည် variable များကို format ချပ်ကြိုးများထဲသို့ထည့်ရန်အသုံးပြုသည်။ ထို့ကြောင့်အသုံးပြုသူမှထည့်သွင်းထားသောအချက်အလက်များကိုဖော်ပြသည့်အခါ၎င်းကို Htmlspecialchars () ကို ဦး စွာအသုံးပြုခြင်းကိုပြုလုပ်သင့်ပြီး Sprintf () သို့သွားသင့်သည်။

 $template = '<a href="%s">%s</a>';
$url = 'https://gitbox.net/page?search=<script>alert(1)</script>';
$link_text = 'ကြည့်ရန်ကိုနှိပ်ပါ';

$safe_url = htmlspecialchars($url, ENT_QUOTES, 'UTF-8');
echo sprintf($template, $safe_url, $link_text);
// ထုတ်လုပ်ခြင်း:<a href="https://gitbox.net/page?search=&lt;script&gt;alert(1)&lt;/script&gt;">ကြည့်ရန်ကိုနှိပ်ပါ</a>

မှတ်စု: link_Text သည်အထက်ဖော်ပြပါဥပမာတွင် static ဖြစ်သော်လည်းအသုံးပြုသူမှ input လုပ်ပါက၎င်းကို HTMLSPECALCHAR () ဖြင့်လည်းကိုင်တွယ်ရမည်။

4 ။ လက်တွေ့ကျသော application တစ်ခု၏ဥပမာများ

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

 echo sprintf('<p>%s ရှင်းလင်းဖေါ်ပြ:%s</p>', $_POST['name'], $_POST['message']);

တိုက်ခိုက်သူသည်အောက်ပါတို့ကိုတင်ပြနိုင်သည်။

  • အမည်ပြောင်: <script> Alert ("XSS") </ script>

  • မက်ဆေ့ခ်ျကိုချန်ထားပါ။ <img src = "Onearror =" Author = "Alert (XSS ')">

လုံခြုံစိတ်ချရသောအလေ့အကျင့်များ:

 $name = htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8');
$message = htmlspecialchars($_POST['message'], ENT_QUOTES, 'UTF-8');

echo sprintf('<p>%s ရှင်းလင်းဖေါ်ပြ:%s</p>', $name, $message);

ဤနည်းအားဖြင့်အသုံးပြုသူအားသွင်းအားစုများမည်သို့ပင်ဖြစ်ပါစေ၎င်းကို Browser မှအမှန်တကယ် HTML သို့မဟုတ် JavaScript သို့ခွဲထုတ်မည်မဟုတ်ပါ, XSS တိုက်ခိုက်မှုများကိုထိထိရောက်ရောက်ကာကွယ်နိုင်သည်။

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

  • အသုံးပြုသူ input ကိုမှလွတ်မြောက်ရန် htmlspecialchars () ကို အသုံးပြုခြင်း XSS ကိုကာကွယ်ရန်အဓိကနည်းလမ်းဖြစ်သည်။

  • HTML output ကိုတည်ဆောက်ရာတွင် SPRINTF () ကို ရှင်းလင်းသောဖွဲ့စည်းပုံကွဲကွဲပြားပြားပြုလုပ်ရန်ပေါင်းစပ်နိုင်သည်။ သို့သော်သင် ပထမ ဦး ဆုံးလွတ်မြောက်ရန်နှင့်၎င်းကို format လုပ် ရမည်။

  • အဆောက်အအုံမှအချက်အလက်များကိုတင်းကြပ်စွာ ခွဲခြား. အသုံးပြုသူ input ကိုမယုံပါနှင့်။

ကျိုးကြောင်းဆီလျော်သော Sprintf () နှင့် htmlspecialchars () ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကုဒ်သည်ရှင်းလင်းပြီးဖတ်နိုင်ရန်အတွက် front-end တိုက်ခိုက်မှုအန္တရာယ်များကိုထိရောက်စွာခုခံတွန်းလှန်နိုင်သည်။ ဤဆောင်းပါးသည်သင်၏ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းကိုအထောက်အကူပြုလိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။