Wymagania wstępne:
Przed rozpoczęciem tego samouczka musisz upewnić się, że Laravel jest zainstalowany i prawidłowo działający w systemie. Zainstalowałem następujące aplikacje w systemie, aby zrobić ten samouczek.
Jak zaimplementować CSRF:
Ochrona CSRF może być wdrażana w Laravel za pomocą dowolnego formularza HTML z ukrytą formą tokena CSRF, a żądanie od użytkownika jest sprawdzane za pomocą CSRF VerifyCSrftoken Middleware. Do generowania tokena CSRF można użyć dowolnej z poniższych opcji.
A. @csrf
Jest to dyrektywa z ostrzem, aby wygenerować pole tokenu, które będzie użyte do weryfikacji. Generuje ukryte pole wejściowe.
B. csrf_token ()
Ta funkcja może być używana w meta znacznika i ukrytym polu wejściowym formy HTML. Generuje losowy ciąg jako token CSRF.
C. csrf_field ()
Ta funkcja tworzy ukryte pole dla formy HTML, w której jest używana i generuje token CSRF.
Zastosowania powyższych opcji pokazano przy użyciu formularzy HTML w następnej sekcji samouczka.
Korzystanie z @CSRF:
Utwórz nazwany plik widoku Laravel CSRF1.ostrze.php z następującym kodem HTML, gdzie @csrf Dyrektywa służy do generowania tokena CSRF.
CSRF1.ostrze.php
Dodaj następującą trasę w sieć.php plik do załadowania pliku widoku w przeglądarce. Kiedy użytkownik da CSRF1 Po podstawowym adresie URL będzie wyszukiwać CSRF1.ostrze.php plik w pogląd folder projektu Laravel.
Trasa :: „/csrf1”, „csrf1”);Uruchom serwer Apache i uruchom następujący adres URL z przeglądarki, aby załadować widok w przeglądarce. Tutaj, LaravelPro to nazwa projektu Laravel. Możesz także uruchomić serwer programowania Laravel za pomocą PHP Artisan Command.
https: // localhost/laravelpro/public/csrf1
Jeśli sprawdzisz stronę, otrzymasz dane wyjściowe jak poniżej. Tutaj ukryte pole z wartością jest generowane automatycznie przez @csrf dyrektywa.
Użycie csrf_token ():
Utwórz nazwany plik widoku Laravel CSRF2.ostrze.php z następującym kodem HTML, w którym csrf_token () Funkcja służy do generowania tokena CSRF. Ta funkcja jest używana jako wartość atrybutu wartości ukrytego pola i jest używana z dwoma kręconymi nawiasami.
CSRF2.ostrze.php
Dodaj następującą trasę sieć.php plik do załadowania pliku widoku w przeglądarce. Podobnie jak pierwsza metoda, kiedy użytkownik da CSRF2 Po podstawowym adresie URL będzie wyszukiwać CSRF2.ostrze.php plik w pogląd folder projektu Laravel.
Trasa :: „/csrf2”, „csrf2”);Uruchom następujący adres URL z dowolnej przeglądarki, jak wcześniej, aby załadować drugi plik widoku.
https: // localhost/laravelpro/public/csrf2
Jeśli sprawdzisz stronę, otrzymasz dane wyjściowe jak poniżej. Tutaj wartość ukrytego pola jest generowana za pomocą csrf_token () funkcjonować.
Użycie CSRF_FIELD ():
Utwórz nazwany plik widoku Laravel CSRF3.ostrze.php z następującym kodem HTML, gdzie CSRF_FIELD () Funkcja służy do generowania tokena CSRF. Ta funkcja działa jak @csrf dyrektywa i nie musisz dodawać ukrytego pola w formie HTML. Jest również używany z dwoma kręconymi nawiasami, takimi jak csrf_token () funkcjonować.
CSRF3.ostrze.php
Dodaj następującą trasę sieć.php plik do załadowania pliku widoku w przeglądarce. Podobnie jak pierwsza metoda, kiedy użytkownik da CSRF3 Po podstawowym adresie URL będzie wyszukiwać CSRF3.ostrze.php plik w pogląd folder projektu Laravel.
Trasa :: „/csrf3”, „csrf3”);Uruchom następujący adres URL z dowolnej przeglądarki, jak wcześniej, aby załadować drugi plik widoku.
https: // localhost/laravelpro/public/csrf3
Jeśli sprawdzisz stronę, otrzymasz dane wyjściowe jak poniżej. Tutaj wartość ukrytego pola jest generowana za pomocą csrf_field () funkcjonować.
Wszystkie trzy metody generowania tokenu CSRF pokazane powyżej generują tę samą wartość tokena dla tej samej przeglądarki. Kiedy atakujący wyśle każde żądanie, aby uzyskać dostęp do treści każdego uwierzytelnionego użytkownika, który jest w Internecie VerifyCSrftoken oprogramowanie pośrednie pasuje do tokena żądania i przechowywanego tokena sesji, aby potwierdzić żądanie przed obsługą. W ten sposób ataku CSRF można łatwo zapobiec w Laravel. Ochrona tę można wyłączyć od Laravel, usuwając wpis App \ http \ Middleware \ VerifyCSrftoken z $ Middleware tablica z pliku App/http/jądro.php.
Wniosek:
Nieautoryzowany dostęp może wywrzeć duży wpływ na dowolną aplikację i uszkodzić dane prawidłowe. Tak więc ochrona CSRF jest bardzo ważna dla zabezpieczenia dowolnego zastosowania, w którym wykonane są różne rodzaje zadań międzynarodowych. Ten samouczek pomoże deweloperom Laravel poznać sposoby zabezpieczenia ich zastosowania za pomocą ochrony CSRF.