Cross Site Request Forgery (CSRF, takze XSRF lub Session Riding) to atak webowy, ktory zmusza zalogowanego uzytkownika do wykonania niezamierzonej akcji w aplikacji, w ktorej ma aktywna sesje. Atakujacy przygotowuje zlosliwy link, obrazek lub formularz na kontrolowanej stronie. Gdy ofiara odwiedzi te strone nie wylogowawszy sie z celu (bankowosc online, panel WordPress, webmail), przegladarka automatycznie wyle zadanie wraz z waznym ciasteczkiem sesji. CSRF zajmowal miejsce 5 w OWASP Top 10 z 2007 i 2010, opuscil Top 10 w 2017 dzieki obronie w frameworkach, a w OWASP Top 10 2021 figuruje w A01 Broken Access Control. Robak Samy w MySpace (pazdziernik 2005, ponad milion zainfekowanych profili w 20 godzin) to najslynniejszy incydent CSRF.
Jak dziala atak CSRF?
- Ofiara jest zalogowana na celu.
- Cel wykonuje akcje zmieniajace stan wylacznie na podstawie ciasteczek.
- Ofiara odwiedza strone atakujacego.
<img src="https://bank.example.pl/przelew?do=ATAKUJACY&kwota=10000">Typowe cele
- Bankowosc i platnosci.
- Webmail.
- Panele admin.
- Sieci spolecznosciowe (robak Samy).
- E-commerce.
- Routery i IoT.
CSRF vs XSS
| Cecha | CSRF | XSS |
|---|---|---|
| Efekt | Wymusza wyslanie zadania | Wykonuje JS atakujacego |
| Kod na celu | Nie | Tak |
| Czyta odpowiedz | Nie | Tak |
| Obchodzi tokeny CSRF | Nie | Tak |
| Glowna obrona | Tokeny, SameSite | Encoding, CSP |
Standardowe obrony
- Token anty CSRF (synchronizer token).
- Ciasteczko SameSite (domyslnie Chrome od lutego 2020).
- Double submit cookie.
- Sprawdzanie Origin i Referer.
- Wlasny naglowek dla AJAX.
- Ponowne uwierzytelnianie dla akcji krytycznych.
- POST zamiast GET dla zmian stanu.
Ochrona WordPressa
WordPress uzywa Nonces. Funkcje: wp_nonce_field(), wp_create_nonce(), check_admin_referer(), check_ajax_referer(). Czas zycia 24 godziny.
SPA i REST API
SameSite=Strictna ciasteczku sesji.- Naglowek
X-CSRF-Token. - JWT w
Authorization: Bearereliminuje CSRF ale zwieksza ryzyko XSS.
Rzeczywiste incydenty
- Robak Samy MySpace, pazdziernik 2005.
- YouTube 2008, Netflix 2006.
- Wtyczki WordPress w 2024 (Forminator, LiteSpeed Cache).
- Routery (badanie 2018, ponad 70 procent podatnych).
Jak InspectWP pomaga?
InspectWP analizuje naglowki Set-Cookie i raportuje atrybuty SameSite oraz Secure.