Po włamaniu na stronę WordPress najpierw odetnij atakującemu dostęp i zabezpiecz ślady. Dopiero potem sprzątaj. Pochopne kasowanie plików usuwa dowody i zostawia otwartą drogę, którą atakujący wszedł. Jeśli wyciekły dane osobowe klientów, masz 72 godziny na decyzję o zgłoszeniu do UODO.
Objawy, które oznaczają włamanie
Włamanie rzadko wygląda jak podmieniona strona główna. Atakujący chce, żeby strona działała dalej, bo zarabia na jej ruchu i reputacji w Google. Typowe objawy:
- Google pokazuje przy wynikach dopisek o możliwym włamaniu albo przeglądarka wyświetla czerwone ostrzeżenie.
- W wynikach wyszukiwania pojawiają się Twoje podstrony z japońskimi znakami, reklamami leków lub kasyn.
- Odwiedzający z telefonu trafiają na obcą stronę, a Ty z komputera widzisz wszystko poprawnie.
- W panelu jest administrator, którego nikt w firmie nie zakładał.
- Hosting zawiesza konto albo informuje o wysyłce spamu z Twojego serwera.
- Klienci sklepu zgłaszają nieautoryzowane transakcje kartą po zakupach u Ciebie.
Ostatni objaw jest najpoważniejszy. Może oznaczać skrypt, który przechwytuje dane wpisywane w formularzu płatności.
Status strony sprawdzisz w raporcie przejrzystości Google Safe Browsing oraz w Google Search Console, w raporcie „Problemy dotyczące bezpieczeństwa”.
Pierwsza godzina: odetnij dostęp i zrób kopię
Zanim cokolwiek usuniesz, zamroź stan strony. Zrób pełną kopię plików i bazy danych w obecnym, zainfekowanym stanie. Pobierz też logi serwera: log dostępu (access log) i log błędów. Wiele hostingów trzyma je tylko przez kilka dni.
Tę kopię odłóż osobno i opisz datą. Nie nadpisuj nią wcześniejszych kopii zapasowych, bo jedna z nich może być ostatnią czystą wersją strony.
Potem ogranicz szkody:
- Włącz tryb konserwacji albo zablokuj ruch do strony w panelu hostingu lub w ustawieniach CDN.
- W sklepie wstrzymaj płatności online, jeśli podejrzewasz ingerencję w koszyk lub stronę zamówienia.
- Jeśli na tym samym koncie hostingowym stoją inne strony, traktuj je jako zainfekowane. Atakujący bez trudu przechodzi między katalogami jednego konta.
Podejrzanych plików jeszcze nie kasuj. Ich nazwy i daty modyfikacji pokażą, którędy wszedł atakujący.
Pierwsza doba: hasła, klucze i konta
Zmiana hasła do panelu WordPress nie wystarczy. Atakujący zwykle zostawia sobie kilka dróg powrotu. Zmień dane dostępowe wszędzie tam, gdzie mógł je przejąć:
- panel hostingu i konto u rejestratora domeny,
- konta FTP i SFTP oraz klucze SSH,
- hasło użytkownika bazy danych, a potem jego wpis w pliku
wp-config.php, - hasła wszystkich administratorów WordPress,
- klucze API bramek płatności, kurierów i usług mailowych zapisane w ustawieniach wtyczek,
- skrzynki e-mail, na które przychodzą linki do resetu haseł.
Wymień też klucze i sole w wp-config.php. To wylogowuje wszystkie aktywne sesje, także sesję atakującego. W WP-CLI zrobisz to jednym poleceniem: wp config shuffle-salts.
Przejrzyj konta z rolą administratora (wp user list --role=administrator). Usuń każde, którego nie umiesz przypisać do konkretnej osoby. Sprawdź też hasła aplikacji w profilach użytkowników. Dają dostęp do API z pominięciem formularza logowania.
Hasła zmieniaj z komputera, któremu ufasz.
Hasło FTP wykradzione z zainfekowanego laptopa to częsta przyczyna powtórnych włamań. Jeśli dostęp do strony miała poprzednia agencja lub freelancer, zmień wszystko, co od nich pochodzi. Kolejność przejmowania dostępów opisujemy w poradniku o przejęciu strony WordPress od agencji.
Czyszczenie: kopia sprzed ataku czy sprzątanie
Masz dwie drogi. Przywrócenie czystej kopii jest szybsze, ale działa tylko przy trzech warunkach:
- wiesz, kiedy nastąpiło włamanie, a kopia jest od tego momentu starsza,
- akceptujesz utratę treści i zamówień od daty kopii albo umiesz je przenieść ręcznie,
- zaraz po przywróceniu zamkniesz lukę, którą wszedł atakujący.
Bez trzeciego warunku strona wraca do stanu sprzed ataku razem z dziurą. Ponowna infekcja przychodzi wtedy w ciągu dni.
Sprzątanie ręczne zaczyna się od porównania plików z oryginałami. WordPress publikuje sumy kontrolne rdzenia i wtyczek z katalogu wordpress.org:
wp core verify-checksumspokazuje zmienione i dopisane pliki rdzenia,wp plugin verify-checksums --allrobi to samo dla wtyczek z oficjalnego katalogu.
Rdzeń i wtyczki najbezpieczniej wgrać od nowa w tej samej wersji, zamiast łatać pojedyncze pliki. Potem przeszukaj miejsca, których sumy kontrolne nie obejmują:
- katalog
wp-content/uploads, w którym nie powinno być żadnego pliku.php, - katalog
wp-content/mu-plugins, bo wtyczki z niego ładują się automatycznie i nie widać ich na zwykłej liście, - pliki
.htaccessiwp-config.php, - pliki motywu, szczególnie
functions.phpi szablon nagłówka, - bazę danych: opcje
siteurlihome, treść wpisów, widżety i zaplanowane zadania cron.
Wtyczki premium i motywy kupione poza katalogiem porównaj ręcznie z paczką od producenta. Wersje „nulled” z nieoficjalnych źródeł usuń bez wyjątków. Często same przynoszą złośliwy kod.
Znajdź przyczynę, zanim wrócisz online
Strona oczyszczona bez znalezienia przyczyny wraca do stanu sprzed tygodnia. Typowe drogi wejścia na firmowe strony WordPress:
- nieaktualna wtyczka ze znaną luką,
- wtyczka porzucona przez autora, której nikt już nie poprawi,
- motyw lub wtyczka z nielegalnego źródła,
- słabe albo powtórzone hasło administratora bez drugiego składnika logowania,
- inna, zaniedbana strona na tym samym koncie hostingowym,
- hasło FTP wykradzione z komputera kogoś z zespołu.
Tu przydają się logi zabezpieczone w pierwszej godzinie. Porównaj daty modyfikacji podejrzanych plików z wpisami w logu dostępu. Seria zapytań POST do pliku jednej wtyczki tuż przed pojawieniem się tylnej furtki zwykle wskazuje winowajcę.
Liczy się tempo. Według raportu Patchstack za 2025 rok 46% podatności zgłoszonych w WordPressie, wtyczkach i motywach nie miało poprawki w chwili publicznego ujawnienia. Przy lukach atakowanych najczęściej ważona mediana czasu do pierwszego ataku wyniosła 5 godzin.
Po zamknięciu luki wdróż stałe zabezpieczenia. Zebraliśmy je w checkliście zabezpieczenia WordPress, ułożonej według priorytetów.
Dane osobowe i UODO: termin 72 godzin
Jeśli strona zbiera dane przez formularze, konta klientów albo zamówienia, włamanie może być naruszeniem ochrony danych osobowych. Administratorem tych danych jest Twoja firma, nie hosting ani agencja.
Artykuł 33 RODO daje 72 godziny od stwierdzenia naruszenia na zgłoszenie go do Prezesa UODO. Zgłoszenie nie jest wymagane, gdy naruszenie raczej nie niesie ryzyka dla osób, których dane dotyczą. Tę ocenę musisz jednak zapisać, bo RODO wymaga dokumentowania każdego naruszenia.
W praktyce odpowiedz sobie na trzy pytania:
- Czy atakujący miał dostęp do bazy danych, a nie tylko do plików?
- Jakie dane są w bazie: e-maile, adresy, telefony, historia zamówień, hasła klientów?
- Czy możesz wykluczyć, że je pobrał?
Jeśli nie możesz tego wykluczyć, zgłoś naruszenie według instrukcji na stronie UODO. Do zgłoszenia wysłanego po 72 godzinach dołączasz wyjaśnienie opóźnienia. Przy wysokim ryzyku, na przykład wycieku haseł, musisz zawiadomić też samych klientów (artykuł 34 RODO).
Google, ostrzeżenia i spamowe podstrony
Czerwone ostrzeżenie w Chrome i dopisek w wynikach wyszukiwania nie znikną same po sprzątaniu. Google musi stronę sprawdzić ponownie.
- Dodaj stronę do Google Search Console, jeśli jeszcze jej tam nie ma, i otwórz raport „Problemy dotyczące bezpieczeństwa”.
- Usuń wszystkie podstrony dodane przez atakującego. Powinny zwracać kod 404 lub 410, bez przekierowania na stronę główną.
- Sprawdź listę właścicieli usługi w Search Console. Nieznanego właściciela usuń razem z jego plikiem lub rekordem weryfikacyjnym.
- Wyślij prośbę o ponowne sprawdzenie z tego samego raportu i opisz, co naprawiłeś.
Według poradnika Google o prośbie o weryfikację sprawdzenie phishingu trwa około doby, złośliwego oprogramowania kilka dni, a spamu do kilku tygodni. Po pozytywnej decyzji ostrzeżenia znikają w ciągu 72 godzin. Prośba wysłana przed pełnym oczyszczeniem tylko przedłuża okres z ostrzeżeniem.
Kiedy oddać sprawę fachowcom
Małą stronę firmową z czystą kopią sprzed ataku często uratujesz samodzielnie. Sklep to inna sprawa. Specjalistę bierz od razu, gdy:
- strona to sklep, a infekcja dotknęła koszyka, zamówień lub płatności,
- w bazie są dane klientów i musisz ocenić zakres wycieku przed decyzją o zgłoszeniu,
- nie masz kopii sprzed włamania albo nie wiesz, kiedy ono nastąpiło,
- stronę już czyszczono, a infekcja wróciła,
- motyw lub wtyczki pisał ktoś na zamówienie i nie ma ich oryginałów do porównania.
Powtórna infekcja po sprzątaniu prawie zawsze oznacza jedno z dwóch. Ktoś przeoczył tylną furtkę albo luka nadal jest otwarta.
Przygotuj dla specjalisty dostęp do hostingu, kopię z pierwszej godziny i krótką oś czasu: kiedy zauważyłeś objawy i co już zmieniłeś. Bez osi czasu diagnoza zaczyna się od zgadywania.
Najczęstsze pytania
Czy wtyczka bezpieczeństwa wystarczy, żeby wyczyścić stronę?
Nie. Wtyczka skanująca wykrywa znane wzorce złośliwego kodu, ale nie znajdzie każdej tylnej furtki i nie wskaże luki, którą wszedł atakujący. Traktuj ją jako pomoc w diagnozie. Czyszczenie wymaga porównania plików z oryginałami, przejrzenia bazy i zamknięcia przyczyny.
Ile trwa usunięcie ostrzeżenia Google po włamaniu?
Po prośbie o ponowne sprawdzenie w Google Search Console Google weryfikuje phishing zwykle w ciągu doby. Złośliwe oprogramowanie sprawdza kilka dni, a spam do kilku tygodni. Prośbę wysyłaj dopiero po pełnym oczyszczeniu strony, bo odrzucona przedłuża okres z ostrzeżeniem.
Czy każde włamanie na stronę trzeba zgłosić do UODO?
Nie każde. Zgłoszenie w ciągu 72 godzin jest obowiązkowe, gdy naruszenie może nieść ryzyko dla osób, których dane dotyczą. Typowy przykład to dostęp atakującego do bazy z danymi klientów. Jeśli uznasz, że ryzyka nie ma, zapisz uzasadnienie, bo RODO wymaga dokumentowania także naruszeń niezgłoszonych.
Czy po przywróceniu kopii zapasowej strona jest bezpieczna?
Tylko wtedy, gdy kopia pochodzi sprzed włamania i od razu zamkniesz lukę, przez którą wszedł atakujący. Kopia przywraca pliki, ale nie aktualizuje dziurawej wtyczki i nie zmienia wykradzionych haseł. Bez tych kroków infekcja szybko wraca.
Ryzyko takiej sytuacji maleje, gdy wtyczki są aktualne, kopie są przechowywane poza serwerem, a monitoring działa bez przerwy. Na tym opiera się nasza opieka nad stroną WordPress: skanowanie malware, kopie w trzech lokalizacjach geograficznych i monitoring dostępności 24/7. Stronę po innym wykonawcy przejmujemy od audytu technicznego.