Ataki CSRF
Założenie: Nauczymy się, jak chronić aplikację PHP przed atakami CSRF (Cross-Site Request Forgery).
Krok po kroku:
- Zrozumienie problemu: Ataki CSRF wykorzystują zaufanie użytkownika do witryny. Atakujący tworzy złośliwy formularz lub link, który automatycznie wysyła żądanie do naszej aplikacji w imieniu zalogowanego użytkownika. Na przykład, może to być ukryty formularz na innej stronie, który wysyła żądanie do naszej aplikacji, np. przelewając pieniądze.
- Tokeny CSRF: Najlepszym sposobem na zapobieganie atakom CSRF jest użycie tokenów CSRF. Generujemy unikalny token dla każdego formularza, który jest następnie sprawdzany po przesłaniu formularza. Jeśli tokeny się nie zgadzają, żądanie jest odrzucane.
- Generowanie tokena: Możemy wygenerować token za pomocą funkcji `bin2hex(random_bytes(32))`. Ten token powinien być przechowywany w sesji użytkownika.
- Dodanie tokena do formularza: Dodajemy ukryte pole do formularza, które przechowuje wygenerowany token.
- Weryfikacja tokena: Po przesłaniu formularza, sprawdzamy, czy token przesłany przez użytkownika zgadza się z tokenem przechowywanym w sesji.
<form method="post" action="process.php">
<input type="hidden" name="csrf_token" value="">
<button type="submit">Wyślij</button>
</form>
Ten przykład pokazuje podstawowe techniki zabezpieczania aplikacji przed atakami CSRF. Pamiętaj, że bezpieczeństwo aplikacji to złożony temat i wymaga dalszej nauki i praktyki.