လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> CSRF တိုက်ခိုက်မှုများကိုကာကွယ်ရန် htmlspecialchars ကိုအသုံးပြုရန်အမှန်တကယ်ထိရောက်မှုရှိပါသလား။ ကာကွယ်စောင့်ရှောက်ရေးအခြေခံမူများနှင့်အသုံးပြုမှုနည်းစနစ်များကိုခွဲခြမ်းစိတ်ဖြာခြင်း

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

M66 2025-07-18

htmlspecialchars ၏အစစ်အမှန်အသုံးပြုမှု ()

HTMLSPECialCHARS () သည် XSS (Cross-site scripting attack) ကိုကာကွယ်ရန် function တစ်ခုဖြစ်သည်။ ၎င်း၏ရည်ရွယ်ချက်မှာစာမျက်နှာများကိုစာမျက်နှာတွင်ကွပ်မျက်ခြင်းမှတင်ပြသောအန္တရာယ်ရှိသော scripts များကိုကာကွယ်ရန် HTML ( < , > , " နှင့် ) ကို HTML အဖွဲ့အစည်းများအဖြစ်ပြောင်းလဲရန်ဖြစ်သည်။ ဥပမာ -

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

output ရလဒ် -

 &lt;script&gt;alert(&quot;XSS&quot;)&lt;/script&gt;

ဤကုဒ်သည်အန္တရာယ်ရှိသော JavaScript injection ကို HTML သို့ထိရောက်စွာကာကွယ်နိုင်သည်။ သို့သော်၎င်းသည် CSRF တိုက်ခိုက်မှုကာကွယ်ရေးနှင့်တိုက်ရိုက်ဆက်နွယ်မှုအနည်းငယ်သာရှိသည်။


CSRF တိုက်ခိုက်မှု၏နိယာမကိုခွဲခြမ်းစိတ်ဖြာခြင်း

CSRF သည်အသုံးပြုသူ၏ "logined status" ကိုအသုံးပြုသည်။ တိုက်ခိုက်သူသည်အသုံးပြုသူအား link တစ်ခုပေါ်တွင် နှိပ်. image / iframe သို့ဝင်ရောက်ရန် အသုံးပြု. image / iframe ကိုသုံးရန်အသုံးပြုပြီး 0 ဘ်ဆိုဒ်တစ်ခုတွင်အသုံးပြုသူ၏လက်ရှိ login status ကို အသုံးပြု. တောင်းဆိုမှုကိုပြုလုပ်သည်။ ဥပမာအားဖြင့်:

 <img src="https://m66.net/delete_account.php" />

အသုံးပြုသူသည် M66.net တွင်ဝင်ရောက်ပြီးဆာဗာသည်မည်သည့်အတည်ပြုခြင်းမပြုပါကဤတောင်းဆိုမှုသည်အသုံးပြုသူအကောင့်ကိုအမှန်တကယ်ဖျက်ပစ်နိုင်သည်။

ဤတိုက်ခိုက်မှု၏သော့ချက်မှာသုံးစွဲသူသည်ပြည်နယ်ပြောင်းလဲမှုတစ်ခုတောင်းဆိုရန်တောင်းဆိုမှုကိုမဖော်ပြနိုင်သည့်အတွက်ဆာဗာသည်တောင်းဆိုမှုကိုယုံကြည်စိတ်ချစေသည်။


HTMLSPECALCHAR () CSRF ကိုမတားဆီးနိုင်သည့်အကြောင်းရင်းများ

htmlspecialchars () "output stage" နှင့်အဓိကအားဖြင့် browser ကိုအန္တရာယ်ရှိသော scripts မှ browser ကိုကာကွယ်ပေးသည်။ CSRF တိုက်ခိုက်မှုများသည်အလိုအလျောက်သို့မဟုတ်အသုံးပြုသူ၏ browser မှအလိုအလျောက်သို့မဟုတ်သွေးဆောင်ခြင်းများကိုစတင်သည်။ စာမျက်နှာတွင် output မရှိပါကပင်ဖြစ်ပေါ်စေနိုင်သည်။

တနည်းအားဖြင့် CSRF သည် "သုံးစွဲသူ၏မည်သူမည်ဝါဖြစ်ကြောင်းဖုံးကွယ်ရန်တောင်းဆိုခြင်း" ဖြစ်ပြီး output contents မှလွတ်မြောက်ခြင်းရှိမရှိနှင့်ဘာမှမဆိုင်ပါဘူး။ ထို့ကြောင့် htmlspecialchars () CSRF တိုက်ခိုက်မှုများကိုမတားဆီးနိုင်ပါ။


CSRF ကိုခုခံကာကွယ်ရန်မှန်ကန်သောနည်းလမ်း

  1. CSRF တိုကင်ကိုအသုံးပြုခြင်း

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

 <?php
session_start();
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
?>
<form method="POST" action="https://m66.net/update_profile.php">
    <input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>" />
    <!-- အခြားပုံစံလယ်ကွင်း -->
    <button type="submit">နားထောင်</button>
</form>
<?php
} elseif ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (!hash_equals($_SESSION['csrf_token'], $_POST['csrf_token'])) {
        die("တရားမဝင်တောင်းဆိုချက်!");
    }
    // update ကိုစစ်ဆင်ရေးလုပ်ဆောင်ပါ
}
?>
  1. ရည်ညွှန်းသူသို့မဟုတ်မူလခေါင်းစဉ်ကိုစစ်ဆေးပါ

၎င်းကိုအပြည့်အဝမမှီခိုနိုင်သော်လည်း၎င်းသည်အချို့သောအခြေအနေများတွင်တောင်းဆိုမှုသည်တရား 0 င်မှုရှိ, မရှိဆုံးဖြတ်ရန်ကူညီနိုင်သည်။ ဥပမာအားဖြင့်:

 <?php
$referer = $_SERVER['HTTP_REFERER'] ?? '';
if (parse_url($referer, PHP_URL_HOST) !== 'm66.net') {
    die("တရားမဝင်အရင်းအမြစ်");
}
?>
  1. Samesite cookie attribute ကိုသုံးပါ

samesite = တင်းကျပ်စွာ သို့မဟုတ် samesite = lax ၏ cookie attribute ကို setting အားဖြင့် throughts cookies တွေကိုတောင်းဆိုခြင်းမှတားဆီးခြင်းမှတတိယပါတီများအား cookies များကိုတောင်းဆိုခြင်းမှကာကွယ်ရန်ခေတ်မီ browser များထံမှကာကွယ်ရေး။

 setcookie('session_id', $value, [
    'samesite' => 'Strict',
    'secure' => true,
    'httponly' => true
]);