Artikoli

Sigurtà tal-Web ta' Laravel: X'inhu Falsifikazzjoni ta' Talba bejn is-Siti (CSRF)?

F'dan it-tutorja ta' Laravel nitkellmu dwar is-Sigurtà tal-Web u kif tipproteġi applikazzjoni tal-web minn attakki Cross-Site Request Forgery jew CSRF.

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à.

X'inhu CSRF?

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.

Kif tipprevjeni talbiet CSRF

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 POSTPUTPATCHDELETE, 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.

Newsletter dwar l-innovazzjoni
Titlifx l-aktar aħbarijiet importanti dwar l-innovazzjoni. Irreġistra biex tirċevihom bl-email.
<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.

Kif u fejn isseħħ il-verifika CSRF

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:

  1. tikseb $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

Newsletter dwar l-innovazzjoni
Titlifx l-aktar aħbarijiet importanti dwar l-innovazzjoni. Irreġistra biex tirċevihom bl-email.

Artikoli riċenti

Il-pubblikaturi u l-OpenAI jiffirmaw ftehimiet biex jirregolaw il-fluss tal-informazzjoni pproċessata mill-Intelliġenza Artifiċjali

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...

April 30 2024

Ħlasijiet Online: Hawn Kif Is-Servizzi ta' Streaming Jagħmel Inti Tħallas Għal Dejjem

Miljuni ta 'nies iħallsu għal servizzi ta' streaming, iħallsu miżati ta 'abbonament ta' kull xahar. Hija opinjoni komuni li inti...

April 29 2024

Veeam għandu l-aktar appoġġ komprensiv għar-ransomware, mill-protezzjoni għar-rispons u l-irkupru

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...

April 23 2024

Rivoluzzjoni Ekoloġika u Diġitali: Kif il-Manutenzjoni Predittiva qed tittrasforma l-Industrija taż-Żejt u l-Gass

Il-manutenzjoni ta’ tbassir qed tirrivoluzzjona s-settur taż-żejt u l-gass, b’approċċ innovattiv u proattiv għall-ġestjoni tal-impjant...

April 22 2024