PHP နှင့် MySqli ကို အသုံးပြု. HTML စာမျက်နှာများသို့ဒေတာများကိုတာ 0 န်ယူရာတွင် XSS (site Cross-site Cross-site Cross-site Cross-site scripting attaching) အားနည်းချက်များကိုရှောင်ရှားရန်သတိထားရမည်။ ဤအားနည်းချက်အမျိုးအစားသည်ပုံမှန်အားဖြင့်ဒေတာဘေ့စ်ရှိအကြောင်းအရာများကိုအခမဲ့သို့မဟုတ်စီစစ်ခြင်းမရှိဘဲဝဘ်စာမျက်နှာသို့တိုက်ရိုက်ထုတ်လွှင့်သောအခါဖြစ်သည်။
အကြောင်းအရာများကိုလုံခြုံစွာရှောင်ရှားရန် HTMLSPECALCHAR () သည်အလွန်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည် HTML အထူးအက္ခရာများ (ဥပမာ < , > နှင့် " စသည်တို့ကဲ့သို့) html အဖွဲ့အစည်းများအဖြစ်ပြောင်းလဲခြင်းကို HTML အဖွဲ့အစည်းများသို့ပြောင်းလဲပေးသည်။ MySQLI_RESFTATES နှင့်အတူဒေတာဘေ့စ်စုံစမ်းမှုများကိုရရှိရန်အတွက်ကျွန်ုပ်တို့သည်အကြောင်းအရာကိုလုံခြုံစွာဖော်ပြနိုင်သည်။
MySQLI_RESULET ကို HTMLSPECALCALCHARS () -
<?php
// ဒေတာဘေ့စ်ဆက်သွယ်မှု
$mysqli = new mysqli("localhost", "username", "password", "database");
// ဆက်သွယ်မှုကိုစစ်ဆေးပါ
if ($mysqli->connect_errno) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
// တစ် ဦး စုံစမ်းမှု execute
$sql = "SELECT id, title, content FROM articles";
$result = $mysqli->query($sql);
if ($result && $result->num_rows > 0) {
echo "<h1>ဆောင်းပါးစာရင်း</h1>";
echo "<ul>";
while ($row = $result->fetch_assoc()) {
// အသုံးပြု htmlspecialchars output ကိုထွက်ပြေး
$title = htmlspecialchars($row['title'], ENT_QUOTES, 'UTF-8');
$content = htmlspecialchars($row['content'], ENT_QUOTES, 'UTF-8');
// ဆောင်းပါးသည်အသေးစိတ် link တစ်ခုရှိသည်ဆိုပါစို့
$articleUrl = "https://m66.net/article.php?id=" . urlencode($row['id']);
echo "<li>";
echo "<a href=\"$articleUrl\">$title</a><br>";
echo "<p>$content</p>";
echo "</li>";
}
echo "</ul>";
} else {
echo "အဘယ်သူမျှမဆောင်းပါးတွေ့ရှိခဲ့ပါတယ်。";
}
// ဆက်သွယ်မှုကိုပိတ်ပါ
$mysqli->close();
?>
htmlspecialchars () ကို သုံးပါ။
ent_quotes parameter သည်တစ်ခုတည်းနှင့်နှစ်ဆကိုးကားခြင်းများကိုလွတ်မြောက်ရန်သေချာစေသည်။
'UTF-8' သည် encoding ကြောင့်ဖြစ်ပေါ်လာသောပြ problems နာများကိုရှောင်ရှားရန် different encoding ကိုသတ်မှတ်သည်။
URLs ကိုတည်ဆောက်သည့်အခါ urlenode () ကို သုံးပါ
URL တွင် parameters များကိုသင်ထည့်သွင်းရန်လိုအပ်ပါက URL ဖွဲ့စည်းပုံကိုမထိခိုက်စေဘဲ urlencode () ကို အသုံးပြုရန်သေချာပါစေ။
unprocessed data ကို HTML တွင်တိုက်ရိုက်မဖြည့်ပါနှင့် ဒေတာဘေ့စလယ်ကွင်း၏တန်ဖိုးများကိုတိုက်ရိုက်ထုတ်လွှင့်မှုသည်အလွန်အန္တရာယ်များပြီးစနစ်တကျလုပ်ဆောင်ရမည်ဖြစ်သည်။
အမှန်တကယ်စီမံကိန်းများတွင်ဒေတာ output ကို browser သို့ data output မှလွတ်မြောက်ရန်အလေ့အထကိုဖော်ထုတ်ခြင်းသည်လုံခြုံရေးဖွံ့ဖြိုးတိုးတက်မှုအတွက်အခြေခံလိုအပ်ချက်ဖြစ်သည်။ MySQLI_RESult နှင့် htmlspecialchars ၏ query ကိုရှာဖွေခြင်းရလဒ်များကိုပေါင်းစပ်ပြီး XSS တိုက်ခိုက်မှုအများစုကိုထိရောက်စွာကာကွယ်နိုင်ပြီးဝက်ဘ်ဆိုက်များနှင့်အသုံးပြုသူများ၏လုံခြုံရေးကိုထိရောက်စွာတားဆီးနိုင်သည်။
အကယ်. သင့်တွင်ပိုမိုကောင်းမွန်သောအကောင်းမြင်ရန်လိုအပ်သည့်အစိတ်အပိုင်းများရှိလျှင် output function များကို encapsulating enins များကိုအသုံးပြုခြင်းသို့မဟုတ် template engins များကို အသုံးပြု. သင့်အတွက်၎င်းတို့ကိုစုစည်းနိုင်သည်။ သငျသညျအကြှနျုပျကိုပိုပြီးပြည့်စုံသောအထုပ်ဥပမာရေးသားစေချင်ပါသလား?