Předpoklady:
Před spuštěním tohoto tutoriálu se musíte ujistit, že je Laravel nainstalován a správně funguje v systému. Nainstaloval jsem v systému následující aplikace, abych provedl tento výukový program.
- Apache / 2.4.41 (Ubuntu)
- PHP 7.4.3 (cli)
- mariadb Ver 15.1
- Laravel Framework 7.25.0
Jak implementovat CSRF:
Ochrana CSRF může být implementována v Laravelu pomocí libovolného formuláře HTML se skrytou formou tokenu CSRF a požadavek uživatele je ověřen pomocí middlewaru CSRF VerifyCsrfToken. K vygenerování tokenu CSRF lze použít kteroukoli z následujících možností.
A. @csrf
Jedná se o direktivu blade, která generuje pole tokenu, které se použije pro ověření. Generuje skryté vstupní pole.
B. csrf_token ()
Tuto funkci lze použít v metaznačce a skrytém vstupním poli formuláře HTML. Generuje náhodný řetězec jako token CSRF.
C. csrf_field ()
Tato funkce vytváří skryté pole pro formulář HTML, kde se používá, a generuje token CSRF.
Použití výše uvedených možností je zobrazeno pomocí formulářů HTML v další části výukového programu.
Použití @csrf:
Vytvořte soubor s názvem Laravel s názvem csrf1.čepel.php s následujícím HTML kódem, kde @csrf Direktiva se používá ke generování tokenu CSRF.
csrf1.čepel.php
Laravel CSRF Protection Method-1
Přidejte následující trasu do web.php soubor pro načtení souboru zobrazení v prohlížeči. Když uživatel dá csrf1 za základní URL pak prohledá csrf1.čepel.php soubor v Pohled složka projektu Laravel.
Route :: view ('/ csrf1', 'csrf1');Spusťte server Apache a spusťte následující adresu URL z prohlížeče a načtěte zobrazení v prohlížeči. Tady, laravelpro je název laravel projektu. Vývojový server Laravel můžete spustit také pomocí příkazu PHP artisan.
https: // localhost / laravelpro / public / csrf1
Pokud stránku prohlédnete, získáte výstup níže. Zde je automaticky generováno skryté pole s hodnotou @csrf směrnice.
Použití csrf_token ():
Vytvořte soubor s názvem Laravel s názvem csrf2.čepel.php s následujícím HTML kódem, kde csrf_token () funkce se používá ke generování tokenu CSRF. Tato funkce se používá jako hodnota atributu hodnoty skrytého pole a používá se se dvěma složenými závorkami.
csrf2.čepel.php
Laravel CSRF Protection Method-2
Přidejte následující trasu v síť.php soubor pro načtení souboru zobrazení v prohlížeči. Stejně jako první metoda, když uživatel dá csrf2 za základní URL pak bude hledat csrf2.čepel.php soubor v Pohled složka projektu Laravel.
Route :: view ('/ csrf2', 'csrf2');Spusťte následující adresu URL z libovolného prohlížeče jako dříve a načtěte druhý soubor zobrazení.
https: // localhost / laravelpro / public / csrf2
Pokud stránku prohlédnete, získáte výstup níže. Zde je hodnota skrytého pole generována pomocí csrf_token () funkce.
Použití csrf_field ():
Vytvořte soubor s názvem Laravel s názvem csrf3.čepel.php s následujícím HTML kódem, kde csrf_field () funkce se používá ke generování tokenu CSRF. Tato funkce funguje jako @csrf směrnice a nemusíte přidávat skryté pole ve formuláři HTML. Používá se také se dvěma složenými závorkami jako csrf_token () funkce.
csrf3.čepel.php
Laravel CSRF Protection Method-3
Přidejte následující trasu v síť.php soubor pro načtení souboru zobrazení v prohlížeči. Stejně jako první metoda, když uživatel dá csrf3 za základní URL pak prohledá csrf3.čepel.php soubor v Pohled složka projektu Laravel.
Route :: view ('/ csrf3', 'csrf3');Spusťte následující adresu URL z libovolného prohlížeče jako dříve a načtěte druhý soubor zobrazení.
https: // localhost / laravelpro / public / csrf3
Pokud stránku prohlédnete, získáte výstup níže. Zde je hodnota skrytého pole generována pomocí csrf_field () funkce.
Všechny tři metody generování tokenu CSRF zobrazené výše generují stejnou hodnotu tokenu pro stejný prohlížeč. Když útočník odešle jakýkoli požadavek na přístup k obsahu jakéhokoli ověřeného uživatele, který je online, pak VerifyCsrfToken middleware bude shodovat token požadavku a uložený token relace k ověření požadavku před zpracováním. Tímto způsobem lze v Laravelu snadno zabránit útoku CSRF. Tuto ochranu lze z laravel vypnout odstraněním položky App \ Http \ Middleware \ VerifyCsrfToken z $ middleware pole ze souboru aplikace / http / jádro.php.
Závěr:
Neoprávněný přístup může mít zásadní dopad na jakoukoli aplikaci a řádně poškodit její data. Ochrana CSRF je tedy velmi důležitá pro zabezpečení jakékoli aplikace, kde se provádějí různé typy nadnárodních úkolů. Tento kurz pomůže vývojářům Laravelu poznat způsoby, jak zabezpečit jejich aplikaci pomocí ochrany CSRF.