ဆောင်းပါးများ

Laravel Web Security- Cross-Site Request Forgery (CSRF) ဆိုတာ ဘာလဲ ။

ဤ Laravel သင်ခန်းစာတွင် Web Security အကြောင်းနှင့် Cross-Site Request Forgery သို့မဟုတ် CSRF တိုက်ခိုက်မှုများမှ ဝဘ်အက်ပလီကေးရှင်းကို မည်သို့ကာကွယ်ရမည်ကို ဆွေးနွေးထားပါသည်။

CSRF သည် ဝဘ်လုံခြုံရေးကို ထိခိုက်စေနိုင်သည့် အစစ်အမှန်အသုံးပြုသူကိုယ်စား လုပ်ဆောင်သည့် တိုက်ခိုက်သူမှ လုပ်ဆောင်သည့် အန္တရာယ်ရှိသော လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ကံကောင်းထောက်မစွာ၊ Laravel သည် ဤအားနည်းချက်အမျိုးအစားကို ကာကွယ်ရန် ကိရိယာများကို ပံ့ပိုးပေးသည်။

CSRF ဆိုတာဘာလဲ။

CSRF သည် အသုံးပြုသူ ဆက်ရှင်များကို ခိုးယူတိုက်ခိုက်သည်။ အသုံးပြုသူတစ်ဦးအား လျှို့ဝှက်ပုံစံတဂ်များ သို့မဟုတ် အန္တရာယ်ရှိသော URL များ (ပုံများ သို့မဟုတ် လင့်ခ်များ) မှတစ်ဆင့် တောင်းဆိုချက်တစ်ခုပေးပို့ရန် အသုံးပြုသူကို လှည့်ဖြားခြင်းဖြင့် ၎င်းကို လုပ်ဆောင်သည်။

ဤတိုက်ခိုက်မှုသည် အသုံးပြုသူ၏ စက်ရှင်အခြေအနေ၊ ဒေတာပေါက်ကြားမှုနှင့် တစ်ခါတစ်ရံတွင် ဟက်ကာများသည် အပလီကေးရှင်းတစ်ခုတွင် အသုံးပြုသူဒေတာကို ကြိုးကိုင်နိုင်သည်။

အထက်ပါပုံသည် ဝဘ်လုံခြုံရေးကို ချိုးဖောက်နေသည့် မြင်ကွင်းကို သရုပ်ဖော်သည်။ သားကောင်သည် လင့်ခ်တစ်ခုကို နှိပ်ခြင်းဖြင့် တောင်းဆိုချက် (လက်ခံရရှိသည်) သည် ဝဘ်ဆိုက်ဆာဗာအား ဝင်ရောက်အသုံးပြုရန်နှင့် ကြိုးကိုင်ခြယ်လှယ်ရန်အတွက် အသုံးဝင်သော အချက်အလက်များကို လက်ဝယ်ရရှိထားသည့် ဟက်ကာမှ အလိုရှိသော အကျိုးသက်ရောက်မှုများကို ဖြစ်ပေါ်စေမည့် ဝဘ်ဆိုက်ဆာဗာသို့ တောင်းဆိုချက်တစ်ခု ပေးပို့သည်။

CSRF တောင်းဆိုမှုများကို မည်သို့တားဆီးမည်နည်း။

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

အသုံးပြုသူ စက်ရှင်တစ်ခုအား ပြန်လည်ထုတ်ပေးသည့်အခါတိုင်း ဤတိုကင်အပြောင်းအလဲကြောင့်၊ တိုက်ခိုက်သူသည် ၎င်းကို ဝင်ရောက်၍မရပါ။

ဆာဗာဘက်ခြမ်း (backend) တွင် အသုံးပြုသူအချက်အလက်ကို ပြောင်းလဲရန် တောင်းဆိုသည့်အခါတိုင်း POSTPUTPATCHDELETEညွန်ကြားချက်တွင် ပါဝင်ရမည်။ @csrf တောင်းဆိုမှုပုံစံတွင် blade HTML ဟိ @csrf ထို့ကြောင့် ညွှန်ကြားချက်တစ်ခုဖြစ်သည်။ Blade အပလီကေးရှင်းမှ အတည်ပြုထားသော ဝှက်ထားသော တိုကင်တစ်ခုကို ထုတ်လုပ်ရန် အသုံးပြုသည်။

ညွှန်ကြားချက် Blade Laravel template engine တွင်အသုံးပြုသော syntax ဖြစ်သည် ဓါးရွက် . ဖိုင်တစ်ခုဖန်တီးရန် blade ကျွန်ုပ်တို့၏ အမှုပုံစံတွင် - ၎င်းကို ဓါး၏ တိုးချဲ့မှုဖြင့် နောက်တွင် သင်က နာမည်ပေးရပါမည်။ ဆိုလိုသည်မှာ ဖိုင်တွင် နာမည်ရှိမည်ဖြစ်သည်။ form.blade.php.

ဖိုင်ကိုအသုံးပြုသည်။ blade ဝဘ်စာမျက်နှာရှိ သုံးစွဲသူများအတွက် အမြင်များကို တင်ဆက်ရန်။ ကြိုတင်လမ်းညွှန်ချက်အချို့ ရှိပါသည်။definite သို့မဟုတ် blade shorthand syntax ကို သင်သုံးနိုင်သည်။ ဥပမာအားဖြင့်, @if အခြေအနေ ကျေနပ်မှုရှိမရှိ စစ်ဆေးပါ၊ @empty မှတ်တမ်းများ ဗလာမပါရှိမရှိ စစ်ဆေးပါ၊ @auth အသုံးပြုသူတစ်ဦးသည် စစ်မှန်ကြောင်းအထောက်အထားရှိမရှိ စစ်ဆေးပါ။

ဒါပေမယ့် ညွှန်ကြားချက်ကို ပြန်သွားကြည့်ရအောင် @csrf. ဤတွင် သင်အသုံးပြုပုံမှာ-

<form method="POST" action="{{route('pay')}}">

    @csrf
    
</form>

Laravel ၏ ယခင်ဗားရှင်းများတွင် မတူညီသော တပ်ဆင်မှုတစ်ခုရှိပါသည်- ၎င်းတို့နှစ်ဦးစလုံးသည် လုပ်ဆောင်ကြပြီး တူညီသည့်အရာကို လုပ်ဆောင်ပါသည်။

ဆန်းသစ်တီထွင်မှုသတင်းလွှာ
ဆန်းသစ်တီထွင်မှုဆိုင်ရာ အရေးကြီးဆုံးသတင်းများကို လက်လွတ်မခံပါနဲ့။ ၎င်းတို့ကို အီးမေးလ်ဖြင့် လက်ခံရန် စာရင်းသွင်းပါ။
<form method="POST" action="{{route('pay')}}">
    
    <input type="hidden" name="_token" value="{{ csrf_token() }}" />
    
</form>

CSRF တိုကင်သည် ဖောင်တောင်းဆိုမှုတွင် တင်သွင်းခံရခြင်းမှ ပျောက်ဆုံးသွားသောအခါ သို့မဟုတ် ၎င်းသည် မမှန်ကန်ပါက Laravel မှ 419 အခြေအနေကုဒ်ဖြင့် “စာမျက်နှာသက်တမ်းကုန်ပြီ” အမှားမက်ဆေ့ချ်ကို ပေးပို့သည်။

CSRF စိစစ်ခြင်းကို မည်သည့်နေရာနှင့် မည်သည့်နေရာတွင် ပြုလုပ်သည်

အလယ်အလတ်ပစ္စည်း VerifyCsrfToken Laravel အပလီကေးရှင်းအတွင်း CSRF အတည်ပြုခြင်းကို ဆောင်ရွက်ပေးသည်။ ဟိ middleware တွင်မှတ်ပုံတင်ထားသည်။ Kernel.php လမ်းညွှန်တွင်တည်ရှိသည်။ app/Http/Middleware. ဆိုလိုသည်မှာ၊ middleware APIs များနှင့်မသက်ဆိုင်ဘဲ ဝဘ်အတွင်း တောင်းဆိုမှုများအတွက် အစပျိုးထားသည်။

protected $middlewareGroups = [
        'web' => [
           .
           .
           .
           .
           .
            \App\Http\Middleware\VerifyCsrfToken::class,
        ],
    ];

VerifyCsrfToken အလယ်တန်းဆော့ဖ်ဝဲသည် အတန်းကို တိုးချဲ့သည်။ Illuminate\Foundation\Http\Middleware\VerifyCsrfTokenဆိုလိုသည်မှာ CSRF အတည်ပြုခြင်းဖြစ်ပါသည်။ defiအတန်းထဲမှာ ည။

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

အတန်းထဲမှာ ကျွန်တော်တို့မှာ function တွေရှိတယ်။ tokensMatch.

protected function tokensMatch($request)
{
     $token = $this->getTokenFromRequest($request);

     return is_string($request->session()->token()) &&
            is_string($token) &&
            hash_equals($request->session()->token(), $token);
}

ကုဒ်တွင် session နှင့် input CSRF တိုကင်များ ကိုက်ညီမှုရှိမရှိ ဆုံးဖြတ်သည်။

Function သည် အရာနှစ်ခုကို လုပ်ဆောင်သည်။

  1. ရယူ $this->getTokenFromRequest လျှို့ဝှက်အကွက် သို့မဟုတ် တောင်းဆိုချက်ခေါင်းစီးမှတဆင့် ပူးတွဲပါရှိသည့် အဝင်တောင်းဆိုမှုမှ တိုကင်။ တိုကင်ကို ကုဒ်ဝှက်ထားပြီး တိုကင်ပြောင်းသည့်ပုံစံသို့ ပြန်သွားသည်။
protected function getTokenFromRequest($request)
{
    $token = $request->input('_token') ?: $request->header('X-CSRF-TOKEN');

    if (! $token && $header = $request->header('X-XSRF-TOKEN')) {
        try {
            $token = CookieValuePrefix::remove($this->encrypter->decrypt($header, static::serialized()));
        } catch (DecryptException $e) {
            $token = '';
            }
    }

    return $token;
}

ကုဒ်တွင် ၎င်းသည် ခေါင်းစီးမှ တိုကင်ကို ရရှိသည်။

2. တောင်းဆိုချက်တိုကင်နှင့် စက်ရှင်နှစ်ခုလုံးကို စာကြောင်းတစ်ခုသို့ ကာစ်လုပ်ပြီး အသုံးပြုပါ။ hash_equals string နှစ်ခုလုံး တူညီပါက နှိုင်းယှဉ်ရန် PHP တွင် တည်ဆောက်ထားသည်။ ဒီလုပ်ဆောင်ချက်ရဲ့ ရလဒ်က အမြဲတမ်းပါပဲ။ bool (အမှန်) သို့မဟုတ် (false) .

Ercole Palmeri

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

မကြာသေးမီဆောင်းပါးများ

ကလေးများအတွက် အရောင်ခြယ်စာမျက်နှာများ၏ အကျိုးကျေးဇူးများ - အသက်အရွယ်တိုင်းအတွက် မှော်ပညာကမ္ဘာ

ဆေးရောင်ခြယ်ခြင်းမှတစ်ဆင့် ကောင်းမွန်သော မော်တာစွမ်းရည်ကို ပြုစုပျိုးထောင်ခြင်းသည် ကလေးများကို စာရေးခြင်းကဲ့သို့ ပိုမိုရှုပ်ထွေးသောစွမ်းရည်များအတွက် ပြင်ဆင်ပေးသည်။ အရောင်ခြယ်ရန်…

2 မေလ 2024

အနာဂတ်သည် ဤနေရာတွင်- သင်္ဘောလုပ်ငန်းသည် ကမ္ဘာလုံးဆိုင်ရာစီးပွားရေးကို တော်လှန်နေပုံ

ရေတပ်ကဏ္ဍသည် ကမ္ဘာလုံးဆိုင်ရာ စီးပွားရေးအင်အားကြီးဖြစ်ပြီး၊ ဘီလီယံ ၁၅၀ ရှိသော စျေးကွက်ဆီသို့ လျှောက်လှမ်းနေသော...

1 မေလ 2024

ထုတ်ဝေသူများနှင့် OpenAI တို့သည် Artificial Intelligence ဖြင့် လုပ်ဆောင်သော သတင်းအချက်အလက်စီးဆင်းမှုကို ထိန်းညှိရန် သဘောတူညီချက်များကို လက်မှတ်ရေးထိုးကြသည်။

ပြီးခဲ့သည့်တနင်္လာနေ့တွင် Financial Times သည် OpenAI နှင့်သဘောတူညီချက်တစ်ခုကြေငြာခဲ့သည်။ FT သည် ၎င်း၏ ကမ္ဘာ့အဆင့်မီ သတင်းစာပညာကို လိုင်စင်ထုတ်ပေးသည်...

ဧပြီလ 30 2024

အွန်လိုင်းငွေပေးချေမှုများ- ဤတွင် Streaming ဝန်ဆောင်မှုများသည် သင့်အား ထာဝစဉ်ပေးဆောင်စေသည်

သန်းပေါင်းများစွာသောလူများသည် streaming ဝန်ဆောင်မှုများအတွက်ပေးဆောင်ပြီးလစဉ်စာရင်းသွင်းမှုအခကြေးငွေပေးဆောင်သည်။ အများအမြင်မှာ သင်...

ဧပြီလ 29 2024

သင့်ဘာသာစကားဖြင့် ဆန်းသစ်တီထွင်မှုကို ဖတ်ပါ။

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

နောက်ဆက်တွဲကျွန်တော်တို့ကို

မကြာသေးမီဆောင်းပါးများ

tag ကို

ကလေးစရိတ် ဆိုက်ဘာတိုက်ခိုက်မှု blockchain chatbot ချတ် gpt မိုဃ်းတိမ်ကို cloud computing အကြောင်းအရာစျေးကွက် ဆိုက်ဘာတိုက်ခိုက်မှု ဆိုက်ဘာလုံခြုံရေး စားသုံးသူမှန်တယ်။ အီလက်ထရောနစ်ကူးသန်းရောင်း နေပြည်တော် ဆန်းသစ်တီထွင်မှုဖြစ်ရပ် gianfranco fedele google သြဇာလွှမ်းမိုးမှု သစ်လွင်မှု ငွေကြေးဆိုင်ရာ ဆန်းသစ်တီထွင်မှု incremental ဆန်းသစ်တီထွင်မှု ဆေးဘက်ဆိုင်ရာဆန်းသစ်တီထွင်မှု ဆန်းသစ်တီထွင်မှု ရေရှည်တည်တံ့ရေး နည်းပညာဆန်းသစ်တီထွင်မှု အတုထောက်လှမ်းရေး IOT စက်သင်ယူ metaverse microsoft nft ကွင်းထဲတွင် လူသားမရှိပါ။ php ပြန်ကြားချက် စက်ရုပ် seo SERP ဆော့ဖျဝဲ software ဒီဇိုင်း software development Software များအင်ဂျင်နီယာ ရေရှည်တည်တံ့မှု startup Thales သင်ခန်းစာ VPN web3