Cyberpediaod Brain
PLDEENESFRITNLPT

CSRF: działanie wymuszone bez Państwa wiedzy

Podstawiona strona lub wiadomość może uruchomić w Państwa przeglądarce działanie w serwisie, w którym są Państwo zalogowani. Mechanizm i ochrona.

W 30 sekund

Gdzie to się zdarza
W większości serwisów internetowych bez zabezpieczenia przed CSRF, gdy otwierają Państwo link lub stronę z pułapką w tej samej przeglądarce1.
Czego chce atakujący
Wywołać działanie, które coś zmienia, na przykład przelew lub zmianę hasła1.
Odruch
Wylogować się z serwisu, gdy skończy się z niego korzystać2.
Skąd bierze się luka
Z aplikacji, nie od użytkownika2.

O co chodzi

CSRF (Cross-Site Request Forgery) to atak, który zmusza użytkownika do wykonania niechcianych działań w aplikacji internetowej, w której jest już uwierzytelniony1. Atakujący nie potrzebuje hasła ofiary: sprawia, że działa jej przeglądarka.

Dla pracownika typowy scenariusz jest prosty. W jednej karcie otwarta jest poczta albo serwis bankowy. Link otrzymany e-mailem lub przez komunikator prowadzi na inną stronę, a ta w tle wysyła żądanie do usługi, w której użytkownik pozostał zalogowany1.

Pytania wprost

Czy CSRF kradnie moje hasło?

Nie, samo w sobie nie. Atak wykorzystuje tożsamość i uprawnienia ofiary, by wykonać działanie w jej imieniu1. Dotyczy działań, które zmieniają stan usługi, takich jak zmiana adresu e-mail lub hasła albo zakup czegoś. Zmuszenie ofiary do wyświetlenia danych nic atakującemu nie daje, ponieważ odpowiedź trafia do ofiary, a nie do niego1.

Dlaczego usługa wykonuje żądanie, którego nie chciałem?

Ponieważ nie potrafi go odróżnić od żądania prawidłowego. W przypadku większości witryn żądania przeglądarki automatycznie zawierają dane uwierzytelniające powiązane z witryną, takie jak ciasteczko sesji1. Jeśli użytkownik jest uwierzytelniony, witryna nie ma więc jak oddzielić żądania sfałszowanego od prawdziwego1. CWE opisuje tę słabość tak: aplikacja nie weryfikuje lub nie może zweryfikować, czy żądanie zostało świadomie przesłane przez użytkownika, który je wysłał5.

Czy jestem chroniony, jeśli usługa korzysta z HTTPS?

Nie. Według OWASP samo HTTPS nie chroni przed CSRF, choć pozostaje warunkiem wstępnym tego, by pozostałe środki były wiarygodne1.

Czy problem leży po mojej stronie, czy po stronie aplikacji?

Po stronie aplikacji. Microsoft mówi to wprost: luki CSRF to zasadniczo problem aplikacji internetowej, a nie użytkownika końcowego2. Działania użytkownika jedynie ograniczają narażenie: wylogowanie po zakończeniu pracy i regularne czyszczenie ciasteczek przeglądarki2.

1W skórze atakującego1 min

Atakujący zaczyna od wyszukania żądania, które coś zmienia w usłudze, a następnie tworzy adres lub skrypt odtwarzający je z własnymi wartościami. OWASP podaje przykład fikcyjnego banku: prawidłowe żądanie przelewa 100 dolarów wskazanemu odbiorcy, a atakujący podstawia siebie w miejsce odbiorcy i podnosi kwotę1.

Pozostaje sprawić, by ofiara załadowała to żądanie, gdy jest zalogowana. Wymieniono dwie metody: niezamówiony e-mail z treścią HTML albo pułapkę umieszczoną na stronach, które ofiara prawdopodobnie odwiedzi, korzystając ze swojej usługi online1.

Atak może też zostać zapisany w samej podatnej witrynie, na przykład w polu przyjmującym HTML. Staje się wtedy bardziej prawdopodobny: ofiara chętniej otwiera stronę tej witryny niż dowolną stronę w Internecie i na pewno jest tam już zalogowana1.

2Co widać na ekranie1 min

Często nic. Link z pułapką może udawać zwykły link, z tekstem w rodzaju „zobacz moje zdjęcia”. Może też mieć postać fałszywego obrazka o zerowym rozmiarze: jeśli znajduje się w e-mailu, ofiara niczego nie widzi, a przeglądarka mimo to wysyła żądanie, bez żadnego widocznego znaku, że operacja się odbyła1.

Fragment
Ilustracja zneutralizowana, to nie jest prawdziwy adres.
Link udający zwykły: wyświetlany tekst „Zobacz moje zdjęcia”, ukryty adres
hxxp://banque[.]exemple[.]invalid/virement?dest=[konto atakującego]&montant=[wysoka kwota]
Wariant: niewidoczny obrazek w e-mailu, ładowany bez kliknięcia.

Jeśli usługa oczekuje żądania typu POST, atakujący może umieścić na swojej stronie formularz z ukrytymi polami. Ofiara sądzi, że formularz robi coś innego, i klika, albo skrypt wysyła go automatycznie po załadowaniu strony1. W obu przypadkach wyświetlana strona jest zwyczajna, a działanie odbywa się gdzie indziej.

3Pod maskąZespoły IT2 min

Mechanizm opiera się na normalnym zachowaniu przeglądarek. Zapisują one ciasteczka wystawione przez aplikację, w tym ciasteczka sesji uwierzytelnionych użytkowników, i wysyłają wszystkie ciasteczka danej domeny z każdym żądaniem, niezależnie od tego, w jaki sposób żądanie powstało w przeglądarce2. Problem nie dotyczy tylko ciasteczek: uwierzytelnianie typu Basic i Digest jest również podatne, ponieważ przeglądarka automatycznie ponownie wysyła dane uwierzytelniające aż do końca sesji2.

Według OWASP kilka pomysłów na obronę nie działa1:

  • tajne ciasteczko, bo wszystkie ciasteczka są wysyłane z każdym żądaniem;
  • przyjmowanie wyłącznie żądań POST, bo do ich sfałszowania wystarcza ukryty formularz;
  • transakcje wieloetapowe, dopóki atakujący może przewidzieć każdy etap;
  • sprawdzanie samego nagłówka Referer, bo można go sfałszować, a czasem go brakuje ze względu na prywatność.

Zalecane zabezpieczenia po stronie aplikacji są następujące.

  • Najpierw sprawdzić, czy framework ma już ochronę przed CSRF, i ją zastosować. Jeśli nie, dodać tokeny anty-CSRF do wszystkich żądań zmieniających stan i weryfikować je po stronie serwera3. Bez tokenu atakujący nie może przygotować prawidłowego żądania3.
  • W oprogramowaniu bezstanowym użyć ciasteczka podwójnego przesyłania (double-submit), najlepiej podpisanego3.
  • Ustawić atrybut SameSite w ciasteczkach sesji3. Przy wartości strict przeglądarka nie wysyła ciasteczka w żądaniach między witrynami, nawet po kliknięciu zwykłego linku. Przy lax wysyła je po przejściu z innej witryny przez link, ale wstrzymuje je w metodach narażonych na CSRF, takich jak POST4. Przy none ochrona nie jest zapewniona4.
  • Sprawdzać pochodzenie żądania za pomocą standardowych nagłówków, w szczególności Sec-Fetch-Site, obsługiwanego przez wszystkie główne przeglądarki od marca 20233.
  • Nie używać żądań GET do operacji zmieniających stan3.

Te środki mają ograniczenia. SameSite=Lax przepuszcza żądania GET przy nawigacji najwyższego poziomu: punkt końcowy zmieniający stan przez GET pozostaje podatny2. Starsze przeglądarki mogą nie stosować SameSite2. Luka XSS może obejść wszystkie zabezpieczenia anty-CSRF; robak Samy na przykład użył XMLHttpRequest, aby zdobyć token CSRF i fałszować żądania13. Domyślne zachowanie SameSite jest różne: w grudniu 2024 lax było wartością domyślną w Chrome, Edge i Operze, ale w żadnej wersji Firefoksa ani Safari, stąd zalecenie, by ustawiać ją jawnie4.

4Analizy incydentówPrawdziwe przypadki1 min

2008: exploit na uTorrent

OWASP podaje jako rzeczywisty przykład ataku CSRF na aplikację działającą na żądaniach GET exploit wymierzony w uTorrent z 2008 roku. Został on użyty na dużą skalę do pobierania złośliwego oprogramowania1. Źródło nie podaje nic więcej: ani liczby ofiar, ani sposobu rozpowszechniania.

Luki skatalogowane w CWE (identyfikatory z lat 2004 do 2009)

CWE-352 podaje wybraną listę zaobserwowanych przykładów, która nie jest wyczerpująca5. Kilka z nich opiera się na zwykłym adresie URL w znaczniku img: CVE-2004-1703 i CVE-2004-1995 pozwalają dodawać konta użytkowników, CVE-2004-1842 uzyskać uprawnienia administratora5. Inne dotyczą samego zarządzania: CVE-2009-3520 pozwala zmienić hasło administratora, a CVE-2009-3759 zmieniać hasła lub wyłączyć maszynę wirtualną z poziomu interfejsu internetowego5.

Karta

Identyfikator
CP-053
Skrzydło
1. Ataki i techniki
Kompetencja Brain
Zrozumieć hacking (understand_hacking)
Odruch Brain
cr-018
Schemat
G3 · Przekrój anatomiczny
Języki
de, en, es, fr, it, nl, pl, pt
Źródła
Źródła sprawdzone 3 listopada 2026: 5
ŹródłaŹródła: 5
  1. OWASP, „Cross Site Request Forgery (CSRF) | OWASP Foundation”. https://community.owasp.org/attacks/csrf (dostęp 3 listopada 2026)
  2. Microsoft, „Prevent Cross-Site Request Forgery (XSRF/CSRF) attacks in ASP.NET Core”. https://learn.microsoft.com/en-us/aspnet/core/security/anti-request-forgery?view=aspnetcore-10.0 (dostęp 3 listopada 2026)
  3. OWASP, „Cross-Site Request Forgery Prevention - OWASP Cheat Sheet Series”. https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html (dostęp 3 listopada 2026)
  4. OWASP, „SameSite | OWASP Foundation”. https://community.owasp.org/SameSite (dostęp 3 listopada 2026)
  5. MITRE, „CWE - CWE-352: Cross-Site Request Forgery (5.0)”. https://cwe.mitre.org/data/definitions/352.html (dostęp 3 listopada 2026)

Zacytuj ten artykuł

Brain, „CSRF: działanie wymuszone bez Państwa wiedzy”, Cyberpedia, 2026. https://startbrain.io/cyberpedia/pl/articles/csrf-sfalszowane-zadanie-miedzy-witrynami/

BibTeX
@misc{brain_cp053_pl_2026,
  author = {Brain},
  title = {CSRF: działanie wymuszone bez Państwa wiedzy},
  year = {2026},
  howpublished = {Cyberpedia},
  url = {https://startbrain.io/cyberpedia/pl/articles/csrf-sfalszowane-zadanie-miedzy-witrynami/},
  note = {CC BY 4.0}
}