Na czym polega XSS
Podatność XSS pojawia się wtedy, gdy aplikacja wyświetla dane użytkownika bez odpowiedniej sanitizacji lub kodowania wyjścia. Atakujący może umieścić złośliwy skrypt JavaScript w treści strony, a przeglądarka ofiary wykona go w kontekście zaufanej domeny.
Rodzaje XSS
- Stored XSS - złośliwy kod jest zapisany w bazie lub pliku i serwowany wszystkim użytkownikom,
- Reflected XSS - payload jest odbijany bezpośrednio z URL lub formularza,
- DOM-based XSS - luka wynika z logiki JavaScript po stronie klienta.
Skutki
- kradzież danych sesyjnych,
- podszywanie się pod użytkownika,
- modyfikacja treści strony,
- przekierowania na złośliwe witryny.
Jak się bronić
- sanityzować dane wejściowe,
- kodować dane przy renderowaniu HTML,
- stosować Content-Security-Policy,
- unikać niebezpiecznego wstrzykiwania HTML i JavaScript do DOM.