CSRF hija attività malizzjuża mwettqa minn attakkant, li jwettaq azzjonijiet f'isem utent awtentikat, detrimentali għas-sigurtà tal-web. Fortunatament, Laravel jipprovdi l-għodod biex jipprevjeni dan it-tip ta 'vulnerabbiltà.
CSRF attakki hijack sessjonijiet tal-utenti. Huma jagħmlu dan billi jqarrqu utent biex jissottometti talba permezz ta' tags ta' formola moħbija jew URLs malizzjużi (immaġini jew links) mingħajr l-għarfien tal-utent.
Dan l-attakk iwassal għal bidla fl-istat tas-sessjoni tal-utent, tnixxijiet tad-dejta, u xi drabi l-hackers jistgħu jimmanipulaw id-dejta tal-utent aħħari f'applikazzjoni.
L-immaġni ta 'hawn fuq turi xenarju fejn is-sigurtà tal-web tinkiser. Il-vittma tibgħat talba billi tikklikkja fuq link (riċevuta), tibgħat talba lil server tal-websajt li tipproduċi l-effetti mixtieqa mill-hacker, li jidħol fil-pussess tal-informazzjoni utli għall-aċċess u l-manipulazzjoni tas-server tal-websajt.
Biex ittejjeb il- sigurtà web tal-applikazzjonijiet tiegħek, f'kull sessjoni tal-utent, Laravel jiġġenera tokens siguri li juża biex jiżgura li l-utent awtentikat ikun dak li jitlob l-applikazzjoni.
Minħabba li dan it-token jinbidel kull darba li sessjoni tal-utent tiġi riġenerata, attakkant ma jistax jaċċessah.
Kull meta jkun hemm talba biex tinbidel l-informazzjoni tal-utent fuq in-naħa tas-server (backend) simili POST
, PUT
, PATCH
e DELETE
, trid tinkludi d-direttiva @csrf
fil-formola tat-talba blade
HTML. Il- @csrf
għalhekk hija direttiva Blade
użat biex jiġġenera token moħbi ivvalidat mill-applikazzjoni.
Id-direttiva Blade
hija s-sintassi użata fil-magna tal-mudell Laravel imsejħa Blade . Biex toħloq fajl blade
trid tagħtiha isem – fil-forma tal-każ tagħna – segwit mill-estensjoni tax-xafra. Dan ifisser li l-fajl se jkollu l-isem form.blade.php
.
Il-fajl jintuża blade
biex tirrendi fehmiet għall-utenti fuq il-paġna tal-web. Hemm ftit pre-direttividefisintassi nite jew blade shorthand tista tuża. Pereżempju, @if
iċċekkja jekk kundizzjoni hijiex sodisfatta, @empty
iċċekkja jekk ir-rekords mhumiex vojta, @auth
iċċekkja jekk utent huwiex awtentikat u l-bqija.
Imma ejja lura għad-direttiva @csrf
. Hawn kif tużah:
<form method="POST" action="{{route('pay')}}">
@csrf
</form>
Verżjonijiet preċedenti ta 'Laravel kellhom setup differenti: it-tnejn jaħdmu u jagħmlu l-istess ħaġa.
<form method="POST" action="{{route('pay')}}">
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
</form>
Meta t-token CSRF ikun nieqes mit-talba tal-formola li qed tiġi sottomessa jew jekk jidher invalidu, Laravel jarmi messaġġ ta 'żball "Paġna Skaduta" b'kodiċi ta' status 419.
Il-middleware VerifyCsrfToken
jimmaniġġja l-verifika CSRF fl-applikazzjoni Laravel. Il- middleware
hija rreġistrata fi Kernel.php
u tinsab fid-direttorju app/Http/Middleware
. Dan ifisser li l- middleware
hija attivata għal talbiet fi ħdan il-web, mhux relatati mal-APIs.
protected $middlewareGroups = [
'web' => [
.
.
.
.
.
\App\Http\Middleware\VerifyCsrfToken::class,
],
];
Il-middleware VerifyCsrfToken jestendi l-klassi Illuminate\Foundation\Http\Middleware\VerifyCsrfToken
, jiġifieri verifika CSRF hija definited fil-klassi.
Ejja ħaffer aktar fil-fond biex insiru nafu kif Laravel jimmaniġġja l-verifika CSRF.
Ġewwa l-klassi, għandna l-funzjoni tokensMatch
.
protected function tokensMatch($request)
{
$token = $this->getTokenFromRequest($request);
return is_string($request->session()->token()) &&
is_string($token) &&
hash_equals($request->session()->token(), $token);
}
fil-kodiċi jiddetermina jekk is-sessjoni u t-tokens CSRF tad-dħul jaqblux.
Il-funzjoni tagħmel żewġ affarijiet:
$this->getTokenFromRequest
it-token mit-talba deħlin mehmuża permezz ta' qasam moħbi jew l-header tar-rikjesta. It-token jiġi decrypted u mbagħad jiġi rritornat għall-varjabbli token.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;
}
Fil-kodiċi jiġrilha token mill-header
2. Itfa kemm it-token tat-talba kif ukoll is-sessjoni f'sekwenza u mbagħad uża hash_equals
mibnija fil-PHP biex tqabbel jekk iż-żewġ kordi huma ugwali. Ir-riżultat ta 'din l-operazzjoni huwa dejjem bool (veru) jew (falz) .
Ercole Palmeri
It-Tnejn li għadda, il-Financial Times ħabbret ftehim mal-OpenAI. FT tagħti liċenzja għall-ġurnaliżmu ta’ klassi dinjija tagħha...
Miljuni ta 'nies iħallsu għal servizzi ta' streaming, iħallsu miżati ta 'abbonament ta' kull xahar. Hija opinjoni komuni li inti...
Coveware minn Veeam se jkompli jipprovdi servizzi ta' rispons għal inċidenti ta' estorsjoni ċibernetika. Coveware se joffri forensiċi u kapaċitajiet ta' rimedju...
Il-manutenzjoni ta’ tbassir qed tirrivoluzzjona s-settur taż-żejt u l-gass, b’approċċ innovattiv u proattiv għall-ġestjoni tal-impjant...