လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Laravel Blade Templates ရှိ HTML tags များကိုအလိုအလျောက်မှလွတ်မြောက်ရန်ပြသနာနှင့်ဖြေရှင်းနည်းကိုဖြေရှင်းပါ

Laravel Blade Templates ရှိ HTML tags များကိုအလိုအလျောက်မှလွတ်မြောက်ရန်ပြသနာနှင့်ဖြေရှင်းနည်းကိုဖြေရှင်းပါ

gitbox 2025-06-29

ပြနာဖော်ပြချက်

လူကြိုက်များသော PHP မူဘောင်တစ်ခုအနေဖြင့် Larvel သည် developer များကိုရှင်းလင်းသောဖွဲ့စည်းပုံနှင့်ထိန်းသိမ်းနိုင်သောအမြင်များကိုထုတ်လုပ်ရန်အတွက်ကြီးမားသောဓါးပြကိရိယာအင်ဂျင်ကိုထောက်ပံ့ပေးသည်။ သို့သော်ပုံမှန်အားဖြင့် Blade သည် XSS ကဲ့သို့သောလုံခြုံရေးအန္တရာယ်များကိုရှောင်ရှားရန် Blade သည် HTML tags များကိုအလိုအလျောက်ထွက်ရှိသည်။ ၎င်းသည်များစွာသောကိစ္စရပ်များတွင်အလွန်ထိရောက်သော်လည်းအချို့သောကိစ္စရပ်များတွင်ပြ problems နာများဖြစ်စေနိုင်သည်။

ဥပမာအားဖြင့်, Database နှင့် output မှ database နှင့် output မှ Database နှင့် output မှတိုက်ရိုက်သိုလှောင်ထားသော HTML အကြောင်းအရာများကိုတိုက်ရိုက်ထုတ်လွှင့်ခြင်း,

အဖေြ

HTML tags များကို Blade Templates တွင် HTML tags များရှာဖွေခြင်း၏ပြ problem နာကိုဖြေရှင်းရန်ဓါးသွားကိုသုံးနိုင်သည်။ `{!!!}` syntax ။ ဤ syntax သည်အကြောင်းအရာကိုမလွတ်မြောက်ရန် Template Engine ကိုညွှန်ကြားလိမ့်မည်, သို့သော်မူလ HTML အကြောင်းအရာများကိုတိုက်ရိုက်ထုတ်လွှင့်ရန်။

HTML tags များပါ 0 င်သည့်မူလအကြောင်းအရာများကို Blade Template တွင်မည်သို့ထုတ်လုပ်နိုင်ကြောင်းဖော်ပြသည့်ဥပမာတစ်ခုဖြစ်သည်။

 <h2>Welcome to the Blog</h2>
<p>{!! $post->content !!}</p>
<p>{{ $post->created_at }}</p>

အပေါ်ကဥပမာမှာ `{!!!!!!!!!!!!` syntax သည် {{{}} ``} `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` syntax

မှတ်သားရန်အရာ

`` {!!!!!!!!!!!!!!!!!} Syntax သည် HTML tag fauca ၏ပြ problem နာကိုဖြေရှင်းနိုင်သည်။ ၎င်းသည်အလားအလာရှိသောလုံခြုံရေးပြ issues နာများကိုလည်းဖြစ်စေနိုင်သည်။ ဒီ syntax သည် output ပါဝင်မှုကိုမလွတ်မြောက်နိုင်ပါက input contents ကိုအတည်မပြုရသေးပါက XSS တိုက်ခိုက်မှုများကဲ့သို့သောလုံခြုံရေးအန္တရာယ်များဖြစ်ပေါ်စေနိုင်သည်။

ဤပြ problem နာကိုရှောင်ရှားရန်အကြောင်းအရာသည်လုံခြုံမှုရှိစေရန်အတွက် output မတိုင်မီသင့်လျော်သော filtering နှင့်စိစစ်အတည်ပြုလုပ်ဆောင်ရန်အကြံပြုသည်။

ဥပမာအားဖြင့်, Template တွင်ပါဝင်မှု output တွင်အသုံးပြုသူမှထည့်သွင်းထားသောအချက်အလက်များပါ 0 င်ပါက,

 <h2>Welcome to the Blog</h2>
<p>{!! e($post->content) !!}</p>
<p>{{ $post->created_at }}</p>

အထက်ပါကုဒ်တွင် `အီး ()` function သည် html သည် html မှလွတ်မြောက်လိမ့်မည်။

အကျဉ်းချုပ်

ဤဆောင်းပါးသည် Laravel Blade Templates တွင် HTML tags များကိုအလိုအလျောက်မှလွတ်မြောက်ရန်ပြသနာကိုမည်သို့ဖြေရှင်းရမည်ကိုဖော်ပြထားသည်။ `{!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! သို့သော်, ဤ syntax ကိုအသုံးပြုသောအခါလုံခြုံရေးပြ issues နာများကိုအထူးဂရုပြုသင့်သည်။ Laravel's `အီး () function ကိုပေါင်းစပ်ခြင်းသည်လုံခြုံရေးကိုပိုမိုမြှင့်တင်ပေးနိုင်ပြီး XSS ကဲ့သို့သောတိုက်ခိုက်မှုများကိုကာကွယ်နိုင်သည်။

ဖွံ့ဖြိုးတိုးတက်စဉ်အတွင်းလုံခြုံရေးကိုအထူးသဖြင့်အသုံးပြုသူများမှအချက်အလက်များနှင့်ပတ်သက်သောအချက်အလက်များနှင့်ပတ်သက်လျှင်လုံခြုံရေးကိုလျစ်လျူရှုခြင်းမရှိပါ။ Laravel's Security အကောင်းဆုံးအလေ့အကျင့်များကိုနားလည်ခြင်းနှင့်လိုက်လျောညီထွေဖြစ်အောင်ပြုလုပ်ခြင်းသည်လုံခြုံ။ ယုံကြည်စိတ်ချရသော 0 က်ဘ်အပလီကေးရှင်းများတည်ဆောက်ရန်မရှိမဖြစ်လိုအပ်သည်။

ဤဆောင်းပါးတွင်မိတ်ဆက်ခြင်းသည် Laravel baddle templates များကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်ပေးနိုင်ကြောင်း,