Laravel CSRF Ochrona

Laravel CSRF Ochrona
Pełna forma CSRF jest fałszerstwo żądania między. Jest to jeden rodzaj ataku online, w którym atakujący wysyła żądania jako upoważniony użytkownik do systemu, uzyskując informacje o dostępie konkretnego użytkownika tego systemu i wykonuje różne rodzaje złośliwych czynności za pomocą tożsamości tego użytkownika. Wpływ tego ataku zależy od przywilejów ofiary na system. Jeśli ofiara jest normalnym użytkownikiem, wpłynie to tylko na dane osobowe ofiary. Ale jeśli ofiara jest administratorem systemu, atakujący może uszkodzić cały system. Ten atak może mieć wpływ na użytkowników każdej witryny biznesowej, w sieci społecznościowych. Tego ataku można łatwo zapobiec, używając ochrony Laravel CSRF, aby system był bardziej bezpieczny. Laravel generuje token CRSF dla każdej aktywnej sesji użytkownika automatycznie, za pomocą którego dowolne żądanie i zatwierdzenie są uwierzytelnione dla systemu. Jak można zastosować ochronę Laravel CSRF w aplikacji Laravel, jest pokazany w tym samouczku.

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.

  • Apache/2.4.41 (Ubuntu)
  • PHP 7.4.3 (CLI)
  • MARIADB VER 15.1
  • Laravel Framework 7.25.0

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



Ochrona CSRF



Metoda ochrony Laravela CSRF-1-1



@csrf










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



Ochrona CSRF



Metoda ochrony Laravel CSRF-2














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



Ochrona CSRF



Metoda ochrony Laravel CSRF-3









csrf_field ()




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.