CSRF یو ناوړه فعالیت دی چې د برید کونکي لخوا ترسره کیږي، څوک چې د یو مستند کارونکي په استازیتوب کړنې ترسره کوي، د ویب امنیت ته زیان رسوي. خوشبختانه، لارویل د دې ډول زیان مننې مخنیوي لپاره وسایل چمتو کوي.
د CSRF بریدونه د کاروونکي ناستې برمته کوي. دوی دا کار د یو کارونکي د پټ فارم ټګونو یا ناوړه URLs (انځورونو یا لینکونو) له لارې د غوښتنې سپارلو لپاره د کارونکي له پوهې پرته ترسره کوي.
دا برید د کارونکي سیشن حالت کې د بدلون لامل کیږي ، د معلوماتو لیک او ځینې وختونه هیکران کولی شي په غوښتنلیک کې د پای کارونکي ډیټا اداره کړي.
پورته عکس یو سناریو ښیې چیرې چې د ویب امنیت سرغړونه کیږي. قرباني په یوه لینک (ترلاسه شوي) باندې کلیک کولو سره غوښتنه لیږي، د ویب پاڼې سرور ته د غوښتنې لیږل چې د هیکر لخوا غوښتل شوي اغیزې رامینځته کړي، څوک چې د ویب پاڼې سرور ته د لاسرسي او سمبالولو لپاره ګټور معلومات په واک کې لري.
د ښه کولو لپاره د امنيت ستاسو د غوښتنلیکونو ویب، د کارونکي په هره ناسته کې، لاراول خوندي ټوکنونه تولیدوي کوم چې دا د دې لپاره کاروي چې ډاډ ترلاسه کړي چې مستند کاروونکي هغه څوک دی چې د غوښتنلیک غوښتنه کوي.
ځکه چې دا نښه هرکله چې د کارونکي سیشن له سره رامینځته کیږي بدلیږي ، برید کونکی نشي کولی ورته لاسرسی ومومي.
هرکله چې د سرور اړخ (بیک اینڈ) په څیر د کارونکي معلوماتو بدلولو غوښتنه شتون ولري POST
, PUT
, PATCH
e DELETE
، تاسو باید لارښود شامل کړئ @csrf
د غوښتنې په فورمه کې blade
HTML. د @csrf
نو دا یو لارښود دی Blade
د غوښتنلیک لخوا تایید شوي پټ نښه تولید لپاره کارول کیږي.
لارښود Blade
هغه ترکیب دی چې د لارویل ټیمپلیټ انجن کې کارول کیږي چې ویل کیږي Blade . د فایل جوړولو لپاره blade
تاسو باید دې ته یو نوم ورکړئ - زموږ د قضیې په شکل کې - وروسته د تیغ غزول. دا پدې مانا ده چې فایل به نوم ولري form.blade.php
.
فایل کارول کیږي blade
په ویب پاڼه کې د کاروونکو لپاره د نظرونو وړاندې کولو لپاره یو څو مخکینۍ لارښوونې شتون لريdefiنایټ یا بلیډ شارټ هینډ ترکیب چې تاسو یې کارولی شئ. د مثال په ډول، @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 نښه د سپارلو فورمې غوښتنې څخه ورکه وي یا که دا ناباوره ښکاري، لاراویل د 419 حالت کوډ سره د "پاڼې پای ته رسید" خطا پیغام وغورځوي.
منځنی وسايل 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په ټولګي کې دننه
راځئ چې ژور کیندنه وکړو ترڅو معلومه کړو چې لارویل څنګه د CSRF تایید اداره کوي.
د ټولګي دننه، موږ فعالیت لرو tokensMatch
.
protected function tokensMatch($request)
{
$token = $this->getTokenFromRequest($request);
return is_string($request->session()->token()) &&
is_string($token) &&
hash_equals($request->session()->token(), $token);
}
په کوډ کې دا ټاکي چې ایا سیشن او ان پټ CSRF ټوکن سره سمون لري.
فعالیت دوه شیان ترسره کوي:
$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
په پی ایچ پی کې جوړ شوی ترڅو پرتله کړي که دواړه تارونه مساوي وي. د دې عملیاتو پایله تل ده بول (رښتیا) یا (غلط) .
Ercole Palmeri
تیره دوشنبه، فایننشل ټایمز د OpenAI سره یوه معامله اعلان کړه. FT د نړۍ په کچه ژورنالیزم جواز ورکوي ...
ملیونونه خلک د سټیمینګ خدماتو لپاره تادیه کوي ، د میاشتنۍ ګډون فیس ورکوي. دا عام نظر دی چې تاسو…
د Veeam لخوا Coveware به د سایبر غصب پیښو غبرګون خدماتو چمتو کولو ته دوام ورکړي. Coveware به د عدلي او درملنې وړتیاوې وړاندې کړي ...
د وړاندوینې ساتنه د تیلو او ګاز سکتور کې انقلاب رامینځته کوي ، د نبات مدیریت لپاره د نوښت او فعال چلند سره.