CSRF (Cross-Site Request Forgery) to atak, w którym złośliwa strona zmusza przeglądarkę zalogowanego użytkownika do wysłania żądania do innej witryny, wykorzystując jego aktywną sesję.
Jak działa atak?
Użytkownik jest zalogowany w serwisie A. Wchodzi na stronę B, która w tle wysyła formularz do serwisu A. Przeglądarka dołącza ciasteczka sesyjne, więc serwis A wykonuje akcję, np. zmianę adresu e-mail.
Jak się chronić?
- tokeny CSRF w formularzach i weryfikacja ich po stronie serwera,
- atrybut ciasteczka
SameSite=LaxlubStrict, - sprawdzanie nagłówków Origin i Referer,
- akcje zmieniające dane tylko przez POST, PUT lub DELETE.
Obroną są tokeny CSRF w formularzach oraz atrybut ciasteczek SameSite.
Ataku nie da się wykonać bez zalogowanej ofiary, bo wykorzystuje jej aktywną sesję w innej karcie przeglądarki.
Czym CSRF różni się od XSS?
CSRF wykorzystuje zaufanie serwera do przeglądarki użytkownika i nie wymaga wstrzyknięcia kodu. XSS wykonuje własny skrypt na zaufanej stronie.
Najczęściej opisywanym przykładem podatności aplikacji internetowych jest SQL Injection, a jej wykrywanie i usuwanie w praktyce obejmuje zabezpieczenie aplikacji przed SQL Injection.
Zobacz w praktyce
Jak zabezpieczyć aplikację przed SQL Injection
Błąd 401 (Unauthorized) - co oznacza i jak go naprawić?
Ochrona przed atakami brute force – jak zabezpieczam logowanie na stronie i serwerze