ကွင်းလယ်ကစားစကားတောင်းဆိုခြင်း (CSRF) သည်ဆိုက်ဘာတိုက်ခိုက်မှု၏ဘုံနည်းလမ်းဖြစ်သည်။ တိုက်ခိုက်သူများကသုံးစွဲသူများအားအသုံးပြုသူ authentication information များကို log in လုပ်ထားသော 0 ဘ်ဆိုဒ်များနှင့် ပတ်သက်. အသုံးချခြင်းအားဖြင့်အန္တရာယ်ရှိသောတောင်းဆိုမှုများကိုစတင်ရန်အတင်းအကျပ်စေခိုင်းသည်။ CSRF တိုက်ခိုက်မှုများကိုထိရောက်စွာကာကွယ်နိုင်ရန်အတွက် Slim Framework သည် Middleware ကို အသုံးပြု. ကာကွယ်မှုအတွက်ယန္တရားတစ်ခုပေးသည်။ ဤဆောင်းပါးသည်တပ်ဆင်ထားသည့်အဆင့်များအပါအ 0 င် Slim Framework တွင် CSRF ကာကွယ်မှုကိုမည်သို့အကောင်အထည်ဖော်ရမည်နှင့် ပတ်သက်. အသေးစိတ်ဖော်ပြချက်များကိုအသေးစိတ်ဖော်ပြထားသည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည် Slim Framework ကိုတေးရေးဆရာမှတဆင့်တပ်ဆင်ရန်လိုအပ်သည်။ ပါးလွှာသောစီမံကိန်းအသစ်တစ်ခုကိုဖန်တီးရန် Terminal တွင်အောက်ပါ command ကို run ပါ။
တေးရေးဆရာဖန်တီး - စီမံကိန်း Slim / Slim My-app
Slim Framework တွင် CSRF ကာကွယ်မှုကို Middleware ယန္တရားများဖြင့်ကိုင်တွယ်နိုင်သည်။ ထိုသို့ပြုလုပ်ရန်ကျွန်ုပ်တို့သည် CSRFMNEWEWEWEWPHP အမည်ရှိ Middleware ဖိုင်ကိုဖန်တီးရန်လိုအပ်သည်။ ပထမ ဦး စွာစီမံကိန်း root directory ထဲတွင် Middleware ဟုခေါ်သောလမ်းညွှန်တစ်ခုကိုဖန်တီးပြီး CSRFMNEWSWALWEN.PHP ဖိုင်ကိုဖန်တီးပါ။
CSRF MOMENAWWARGWANGWARE အတွက်ကုဒ်ဥပမာတစ်ခု
<?php namespace App\Middlewares; class CsrfMiddleware extends SlimMiddlewareAntiCsrf { public function call() { $this-> App-> ချိတ် ('slim.before', [$ ဒီ, '' check ']); $ -> Next-> ခေါ်ဆိုမှု (), } အများပြည်သူ function ကို ralidatesterage () { အကယ်. (! $ -> App-> View () -> GetData (CSRF_KEKY) || ! $ ဒီ -> App-> View () -> GetData ('CSRF_VALUE)) $ THE-> App-> Getlog () -> အမှား ('CSRF ၏အမှားအယွင်း - CSRF key and or value'); $ -> App-> Pass (); } } }
ထို့နောက်သင် Slim application တွင်သင်ဖန်တီးထားသော CSRF အချင်းချင်းကိုမှတ်ပုံတင်ရန်လိုအပ်သည်။ အောက်ပါကုဒ်ကို index.php ဖိုင်သို့ index.php ဖိုင်သို့ထည့်ပါ။
$ app = အသစ် slimapp (); ... $ app-> add (အသစ် app \ middwayes \ csrfmidsware ()); ... $ app-> run ();
CSRF တိုက်ခိုက်မှုများမှပုံစံကိုကာကွယ်ရန်ကျွန်ုပ်တို့သည် CSRF အမှတ်အသားကိုပုံစံသို့ထည့်သွင်းရန်လိုအပ်သည်။ ၎င်းကိုပုံစံသို့လျှို့ဝှက်ကွက်လပ်များကိုထည့်ခြင်းဖြင့်ရရှိနိုင်သည်။ CSRF အမှတ်အသားတစ်ခုထည့်ရန်နမူနာကုဒ်ဖြစ်သည်။
<form action="/submit" method="post"> <input type="hidden" name="csrf_key" value="{{ csrf_key }}"> <input type="hidden" name="csrf_value" value="{{ csrf_value }}"> <!-- အခြားပုံစံလယ်ကွင်း --> <button type="submit">နားထောင်</button> </form>
ဆာဗာဘက်တွင်, တင်သွင်းသောတောင်းဆိုမှုတွင် CSRF အမှတ်အသားသည်မှန်ကန်ကြောင်းစစ်ဆေးရန်လိုအပ်သည်။ ဤနေရာတွင်ဥပမာ routing processor code တစ်ခုရှိသည်။
$ App-> Post ('/ တင်ပြချက်', function ($ တောင်းဆိုမှု, $ တုံ့ပြန်မှု) { $ ဒေတာ = $ တောင်းဆိုချက် -> GetParsedbody (); // တောင်းဆိုမှု parameters // csrf token $ csrf token = $ ဒေတာ ['CSRF_KEKENTER)] $ csrf_value = $ ဒေတာ ['csrf_value'; IF (! $ app-> CSRF-> စစ်ဆေးမှု ($ csrf_key, $ csrf_value)) // CSRF တိုကင်အတည်ပြုချက်သည် $ တုန့်ပြန်မှုမအောင်မြင်ပါ။ >> GetBeriGe ()> MRANGRE ('CSRF validation'), $ Response->> နှင့်အတူ (403), } // လုပ်ငန်းစဉ်ပုံစံတင်သွင်းမှု // ... $ Response->> GetBeriGe () -> ရေးသားခြင်း ('အောင်မြင်စွာတင်ပြခြင်း)); $ တုံ့ပြန်မှုကိုပြန်ပို့ခြင်း, });
Slim Framework တွင် Middleware ကို အသုံးပြု. CSRF ကာကွယ်မှုကိုအလွယ်တကူအကောင်အထည်ဖော်နိုင်သည်။ Token ကိုစစ်ဆေးရန်နှင့်လုပ်ငန်းစဉ်ကိုပထမဆုံး CSRF MOARTWARK ကိုဖန်တီးပါ, ပြီးနောက်အသုံးပြုသူတောင်းဆိုချက်များ၏လုံခြုံရေးကိုသေချာစေရန် CSRF တိုကင်များကိုပုံစံသို့ထည့်ပါ။ ဤနည်းအားဖြင့် SSRF သည် CSRF တိုက်ခိုက်မှုများကိုထိရောက်စွာကာကွယ်နိုင်ပြီး application ၏လုံခြုံရေးကိုထိရောက်စွာတားဆီးနိုင်သည်။