Zabezpieczenie formularza przed atakami CSRF
Założenie: Zabezpieczmy formularz przed atakami Cross-Site Request Forgery (CSRF) generując i weryfikując unikalne tokeny CSRF.
Krok po kroku:
- Generowanie tokenu CSRF: Generujemy losowy token i zapisujemy go w sesji użytkownika.
Ten kod generuje losowy token o długości 64 znaków (używając funkcji `bin2hex` i `random_bytes`) i zapisuje go w zmiennej sesji `csrf_token`. Jeśli zmienna sesji nie istnieje, token jest generowany.
- Dodanie tokenu do formularza: Dodajemy ukryte pole do formularza, które przechowuje wygenerowany token.
To dodaje ukryte pole o nazwie `csrf_token` do formularza, przechowując w nim wartość tokena.
- Weryfikacja tokenu: Po wysłaniu formularza, weryfikujemy czy token z formularza zgadza się z tokenem zapisanym w sesji.
Ten kod sprawdza, czy token przesłany w formularzu (`$_POST[‘csrf_token’]`) jest identyczny z tokenem zapisanym w sesji. Jeśli nie, wyświetlany jest komunikat o błędzie.
Pamiętaj, aby zawsze uruchamiać `session_start()` na początku każdego skryptu, który korzysta z sesji.
Ten przykład pokazuje podstawowe zabezpieczenie przed atakami CSRF. Dla bardziej zaawansowanych zastosowań, rozważ użycie bibliotek lub frameworków, które oferują bardziej kompleksowe rozwiązania.