Laravel CSRF -beskyttelse

Laravel CSRF -beskyttelse
Den fulle formen for CSRF er forfalskning på tvers av nettsteder. Det er en type online angrep der angriperen sender forespørsler som en autorisert bruker til et system ved å få tilgangsinformasjon til en bestemt bruker av det systemet og utfører forskjellige typer ondsinnede aktiviteter ved å bruke identiteten til den brukeren. Effekten av dette angrepet avhenger av offerets privilegier på systemet. Hvis offeret er en normal bruker, vil det bare påvirke personopplysningene til offeret. Men hvis offeret er administrator av systemet, kan angriperen skade hele systemet. Brukerne av et hvilket som helst bedriftsnettsted, kan sosiale nettverk bli påvirket av dette angrepet. Dette angrepet kan enkelt forhindres ved å bruke Laravel CSRF -beskyttelse for å gjøre systemet sikrere. Laravel genererer CRSF -token for hver aktive brukerøkt automatisk som enhver forespørsel og godkjenning gis til den autentiserte brukeren for systemet. Hvordan Laravel CSRF -beskyttelse kan brukes i Laravel -applikasjonen vises i denne opplæringen.

Forutsetninger:

Før du starter denne opplæringen, må du sørge for at Laravel er installert og fungerer ordentlig i systemet. Jeg har installert følgende applikasjoner på systemet for å gjøre denne opplæringen.

  • Apache/2.4.41 (Ubuntu)
  • PHP 7.4.3 (CLI)
  • Mariadb Ver 15.1
  • Laravel Framework 7.25.0

Hvordan implementere CSRF:

CSRF -beskyttelse kan implementeres i Laravel ved å bruke et hvilket. Noen av følgende alternativer kan brukes til å generere et CSRF -token.

EN. @csrf

Det er et bladdirektiv å generere et tokenfelt som vil bruke til verifisering. Det genererer et skjult inngangsfelt.

B. csrf_token ()

Denne funksjonen kan brukes i Meta -taggen og det skjulte inngangsfeltet til HTML -skjemaet. Det genererer en tilfeldig streng som et CSRF -token.

C. CSRF_FIELD ()

Denne funksjonen skaper et skjult felt for HTML -formen der det brukes og genererer CSRF -token.

Bruken av alternativene ovenfor vises ved hjelp av HTML -skjemaer i neste del av opplæringen.

Bruk av @CSRF:

Opprett en Laravel -visningsfil som heter CSRF1.blad.PHP med følgende HTML -kode hvor @csrf Direktiv brukes til å generere CSRF -token.

CSRF1.blad.PHP



CSRF -beskyttelse



Laravel CSRF beskyttelsesmetode-1



@csrf










Legg til følgende rute i Web.PHP Fil for å laste inn visningsfilen i nettleseren. Når brukeren vil gi CSRF1 Etter basen URL vil den søke CSRF1.blad.PHP fil i utsikt Mappe av Laravel -prosjektet.

Rute :: Vis ('/CSRF1', 'CSRF1');

Start Apache -serveren og kjør følgende URL fra nettleseren for å laste visningen i nettleseren. Her, LaravelPro er Laravel -prosjektnavnet. Du kan også kjøre Laravel Development Server ved hjelp av PHP Artisan Command.

https: // localhost/laravelpro/public/csrf1

Hvis du inspiserer siden, vil du få utdataene som nedenfor. Her genereres et skjult felt med verdien automatisk av @csrf direktiv.

Bruk av CSRF_Token ():

Opprett en Laravel -visningsfil som heter CSRF2.blad.PHP med følgende HTML -kode der csrf_token () Funksjon brukes til å generere CSRF -token. Denne funksjonen brukes som verdien av verdien til det skjulte feltet, og den brukes med to krøllete parenteser.

CSRF2.blad.PHP



CSRF -beskyttelse



Laravel CSRF beskyttelsesmetode-2














Legg til følgende rute i nettet.PHP Fil for å laste inn visningsfilen i nettleseren. Som den første metoden, når brukeren vil gi CSRF2 Etter basen URL vil den søke CSRF2.blad.PHP fil i utsikt Mappe av Laravel -prosjektet.

Rute :: visning ('/csrf2', 'csrf2');

Kjør følgende URL fra hvilken som helst nettleser som før for å laste inn den andre visningsfilen.

https: // localhost/laravelpro/public/csrf2

Hvis du inspiserer siden, vil du få utdataene som nedenfor. Her genereres verdien av det skjulte feltet ved å bruke csrf_token () funksjon.

Bruk av CSRF_field ():

Opprett en Laravel -visningsfil som heter CSRF3.blad.PHP med følgende HTML -kode hvor CSRF_field () Funksjon brukes til å generere CSRF -token. Denne funksjonen fungerer som @csrf Direktiv og du trenger ikke å legge til et skjult felt i HTML -skjemaet. Det brukes også med to krøllete parenteser som csrf_token () funksjon.

CSRF3.blad.PHP



CSRF -beskyttelse



Laravel CSRF beskyttelsesmetode-3









csrf_field ()




Legg til følgende rute i nettet.PHP Fil for å laste inn visningsfilen i nettleseren. Som den første metoden, når brukeren vil gi CSRF3 Etter basen URL vil den søke CSRF3.blad.PHP fil i utsikt Mappe av Laravel -prosjektet.

Rute :: visning ('/csrf3', 'csrf3');

Kjør følgende URL fra hvilken som helst nettleser som før for å laste inn den andre visningsfilen.

https: // localhost/laravelpro/public/csrf3

Hvis du inspiserer siden, vil du få utdataene som nedenfor. Her genereres verdien av det skjulte feltet ved å bruke CSRF_FIELD () funksjon.

Alle tre metodene for å generere CSRF -token vist ovenfor genererer den samme tokenverdien for samme nettleser. Når angriperen vil sende enhver forespørsel om å få tilgang til innholdet til enhver autentisert bruker som er online da Verifycsrftoken Middleware vil samsvare med Request Token og lagret Session Token for å validere forespørselen før håndtering. På denne måten kan CSRF -angrepet enkelt forhindres i Laravel. Denne beskyttelsen kan deaktiveres fra Laravel ved å fjerne oppføringen av App \ http \ mellomvare \ verifycsrftoken av $ mellomvare Array fra filen app/http/kjerne.PHP.

Konklusjon:

Den uautoriserte tilgangen kan ha stor innvirkning på enhver applikasjon og skade dataene til den ordentlig. Så CSRF -beskyttelse er veldig viktig for å sikre enhver applikasjon der de forskjellige typene transnasjonale oppgaver blir utført. Denne opplæringen vil hjelpe Laravel -utviklerne til å kjenne måtene å sikre applikasjonen deres ved hjelp av CSRF -beskyttelse.