Protezione CSRF di Laravel

Protezione CSRF di Laravel
La forma completa di CSRF è la falsificazione della richiesta di site. È un tipo di attacco online in cui l'attaccante invia richieste come utente autorizzato a un sistema ottenendo informazioni di accesso a un determinato utente di quel sistema ed esegue diversi tipi di attività dannose utilizzando l'identità di tale utente. L'impatto di questo attacco dipende dai privilegi della vittima sul sistema. Se la vittima è un utente normale, influirà solo sui dati personali della vittima. Ma se la vittima è l'amministratore del sistema, allora l'attaccante può danneggiare l'intero sistema. Gli utenti di qualsiasi sito Web aziendale, i social network possono essere influenzati da questo attacco. Questo attacco può essere prevenuto facilmente utilizzando la protezione CSRF Laravel per rendere il sistema più sicuro. Laravel genera token CRSF per ogni sessione utente attiva automaticamente con il quale qualsiasi richiesta e approvazione viene data all'utente autenticato per il sistema. In questo tutorial è mostrato come laravel CSRF Protection nell'applicazione Laravel.

Prerequisiti:

Prima di iniziare questo tutorial, devi assicurarti che il Laravel sia installato e funzionante correttamente nel sistema. Ho installato le seguenti applicazioni sul sistema per fare questo tutorial.

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

Come implementare CSRF:

La protezione CSRF può essere implementata in Laravel utilizzando qualsiasi modulo HTML con una forma nascosta di token CSRF e la richiesta dell'utente viene convalidata utilizzando CSRF VerifycsrfToken. Una delle seguenti opzioni può essere utilizzata per generare un token CSRF.

UN. @csrf

È una direttiva a lama per generare un campo token che utilizzerà per la verifica. Genera un campo di input nascosto.

B. csrf_token ()

Questa funzione può essere utilizzata nel meta tag e nel campo di input nascosto del modulo HTML. Genera una stringa casuale come token CSRF.

C. csrf_field ()

Questa funzione crea un campo nascosto per il modulo HTML in cui viene utilizzato e genera token CSRF.

Gli usi delle opzioni sopra sono mostrati utilizzando i moduli HTML nella sezione successiva del tutorial.

Uso di @csrf:

Crea un file di visualizzazione Laravel denominato CSRF1.lama.PHP con il seguente codice HTML dove @csrf La direttiva viene utilizzata per generare token CSRF.

CSRF1.lama.PHP



Protezione CSRF



Laravel CSRF Protection Method-1



@csrf










Aggiungi il seguente percorso nel ragnatela.PHP File per caricare il file di visualizzazione nel browser. Quando l'utente darà CSRF1 Dopo l'URL di base, cercherà CSRF1.lama.PHP file in visualizzazione cartella del progetto Laravel.

Route :: View ('/csrf1', 'csrf1');

Avviare il server Apache ed eseguire il seguente URL dal browser per caricare la vista nel browser. Qui, Laravelpro è il nome del progetto Laravel. Puoi anche eseguire il server di sviluppo di Laravel usando il comando PHP Artisan.

https: // localhost/laravelpro/public/csrf1

Se ispezioni la pagina, otterrai l'output come sotto. Qui, un campo nascosto con il valore viene generato automaticamente da @csrf direttiva.

Uso di csrf_token ():

Crea un file di visualizzazione Laravel denominato CSRF2.lama.PHP con il seguente codice HTML in cui il csrf_token () La funzione viene utilizzata per generare token CSRF. Questa funzione viene utilizzata come valore dell'attributo del valore del campo nascosto e viene utilizzata con due parentesi ricci.

CSRF2.lama.PHP



Protezione CSRF



Metodo di protezione CSRF Laravel-2














Aggiungi il seguente percorso in la rete.PHP File per caricare il file di visualizzazione nel browser. Come il primo metodo, quando l'utente darà CSRF2 Dopo l'URL di base, cercherà CSRF2.lama.PHP file in visualizzazione cartella del progetto Laravel.

Route :: View ('/csrf2', 'csrf2');

Esegui il seguente URL da qualsiasi browser come prima per caricare il secondo file.

https: // localhost/laravelpro/public/csrf2

Se ispezioni la pagina, otterrai l'output come sotto. Qui, il valore del campo nascosto viene generato utilizzando il csrf_token () funzione.

Uso di csrf_field ():

Crea un file di visualizzazione Laravel denominato CSRF3.lama.PHP con il seguente codice HTML dove CSRF_FIELD () La funzione viene utilizzata per generare token CSRF. Questa funzione funziona come @csrf Direttiva e non è necessario aggiungere un campo nascosto nel modulo HTML. È anche usato con due parentesi ricci come csrf_token () funzione.

CSRF3.lama.PHP



Protezione CSRF



Laravel CSRF Protection Method-3









csrf_field ()




Aggiungi il seguente percorso in la rete.PHP File per caricare il file di visualizzazione nel browser. Come il primo metodo, quando l'utente darà CSRF3 Dopo l'URL di base, cercherà CSRF3.lama.PHP file in visualizzazione cartella del progetto Laravel.

Route :: View ('/csrf3', 'csrf3');

Esegui il seguente URL da qualsiasi browser come prima per caricare il secondo file.

https: // localhost/laravelpro/public/csrf3

Se ispezioni la pagina, otterrai l'output come sotto. Qui, il valore del campo nascosto viene generato utilizzando il csrf_field () funzione.

Tutti e tre i metodi per generare token CSRF mostrato sopra generano lo stesso valore del token per lo stesso browser. Quando l'attaccante invierà qualsiasi richiesta per accedere al contenuto di qualsiasi utente autenticato che è online allora Verifycsrftoken Middleware corrisponderà al token di richiesta e al token di sessione memorizzato per convalidare la richiesta prima di gestire. In questo modo, l'attacco CSRF può essere prevenuto facilmente in Laravel. Questa protezione può essere disabilitata da Laravel rimuovendo l'ingresso di App \ http \ middleware \ verifycsrftoken Di $ middleware Array dal file app/http/kernel.PHP.

Conclusione:

L'accesso non autorizzato può avere un impatto notevole su qualsiasi applicazione e danneggiare correttamente i dati di esso. Quindi, la protezione CSRF è molto importante per garantire qualsiasi applicazione in cui vengono svolti i diversi tipi di attività transnazionali. Questo tutorial aiuterà gli sviluppatori di Laravel a conoscere i modi per proteggere la propria applicazione utilizzando la protezione CSRF.