Przejdź do głównej treści
Powrót do bloga
Bezpieczeństwo stron WWW

CSRF na stronie internetowej: jak zabezpieczyć formularze, panel i koszyk

27 maja 20267 min czytania
CSRF na stronie internetowej: jak zabezpieczyć formularze, panel i koszyk

CSRF nie polega na włamaniu hasłem. Atakujący wykorzystuje fakt, że użytkownik jest już zalogowany i wysyła w jego imieniu żądanie do serwisu. Dlatego problem dotyczy nie tylko banków czy aplikacji SaaS, ale też paneli klienta, formularzy, koszyków, systemów rezerwacji i stron z kontem użytkownika.

Jeżeli endpoint akceptuje zmianę danych tylko dlatego, że przeglądarka dołączyła cookies sesyjne, to brakuje ważnej warstwy kontroli. Dobra ochrona CSRF sprawia, że samo posiadanie sesji nie wystarczy: żądanie musi jeszcze pochodzić z właściwego formularza, właściwej domeny i właściwego kontekstu.

Gdzie CSRF najczęściej robi szkody?

  • formularze zmiany hasła, adresu e-mail i danych kontaktowych,
  • checkout i koszyk, gdzie można zmienić adres dostawy albo metodę płatności,
  • panel administratora CMS lub sklepu,
  • formularze zapisu, wypisu i zgód marketingowych,
  • endpointy API, które zmieniają stan konta lub zamówienia.

Minimalny zestaw zabezpieczeń

WarstwaCo robiUwaga
Token CSRFDodaje unikalny sekret do formularza lub nagłówka.Token musi być weryfikowany po stronie serwera.
SameSite cookiesOgranicza wysyłanie cookies w żądaniach z obcych stron.Ustawienia trzeba dobrać do logowania i płatności.
Origin/Referer checkSprawdza, czy żądanie pochodzi z właściwej domeny.To dodatkowa kontrola, nie jedyna ochrona.
POST dla zmian stanuNie pozwala zmieniać danych zwykłym linkiem GET.GET zostaw dla odczytu.
Potwierdzenie działań krytycznychWymusza ponowne hasło, 2FA albo wyraźne potwierdzenie.Przydatne dla płatności i ustawień konta.

Jak sprawdzić istniejącą stronę?

Najpierw wypisz wszystkie formularze i endpointy, które zmieniają dane. Potem sprawdź, czy każde żądanie ma metodę POST/PUT/PATCH/DELETE, token lub nagłówek anty-CSRF, walidację Origin oraz sensowną politykę cookies. Jeżeli formularz działa bez tokenu po skopiowaniu samego żądania, to jest sygnał do poprawki.

W WordPressie i WooCommerce część mechanizmów jest dostępna w core i wtyczkach, ale łatwo ją ominąć przez własny AJAX, niestandardowy formularz albo źle napisany endpoint REST API. W aplikacjach customowych problem często pojawia się przy szybkich panelach administracyjnych i integracjach z CRM.

CSRF a UX

Dobre zabezpieczenia nie muszą psuć doświadczenia użytkownika. Token może działać niewidocznie, a dodatkowe potwierdzenie warto zostawić tylko dla działań wysokiego ryzyka. Najgorsze rozwiązanie to strona, która co chwilę wyrzuca użytkownika z formularza, bo token wygasł bez komunikatu.

Co warto wdrożyć przy przebudowie strony?

  • mapę formularzy i endpointów przed startem prac,
  • jednolitą obsługę tokenów CSRF w komponentach formularzy,
  • testy dla krytycznych akcji w panelu i koszyku,
  • politykę cookies z `SameSite=Lax` lub mocniejszą tam, gdzie to możliwe,
  • logowanie nietypowych prób zmiany danych.

Jeżeli strona generuje leady albo przyjmuje płatności, CSRF powinien być częścią normalnego technicznego odbioru serwisu. To nie jest dodatki „na później”, tylko podstawowa higiena formularzy i paneli użytkownika.

CSRFbezpieczeństwo formularzySameSite cookiestoken CSRFbezpieczeństwo strony

Powiązane usługi

Zobacz usługi powiązane z tym artykułem

Jeśli ten temat jest aktualny dla Twojej firmy, sprawdź 2-3 usługi, które najczęściej pomagają naszym klientom przejść od wiedzy do wdrożenia.

Masz pytania? Porozmawiajmy!

Chętnie pomożemy z Twoim projektem internetowym. Bezpłatna konsultacja.

Skontaktuj się z nami