Zhakowana strona firmowa rzadko wygląda jak w filmach. Zwykle klient pisze, że z Twojej strony przenosi go na kasyno, w Google pod Twoją domeną pojawiają się strony po japońsku, hosting blokuje konto za wysyłanie spamu albo w panelu WordPressa jest administrator, którego nikt nie zakładał. Pierwsze godziny decydują o tym, ile pracy będzie później. Poniżej opisuję kolejność działań, od zabezpieczenia dostępu po zgłoszenie do Google, i to, czego w nerwach nie robić.
Objawy włamania
- Strona przekierowuje część odwiedzających, często tylko na telefonie albo tylko z wyników Google, na obce strony.
- W wynikach Google pod Twoją domeną są tysiące podstron z obcymi tekstami.
- Przeglądarka albo Google pokazują ostrzeżenie, że strona może być niebezpieczna.
- W panelu są nowi użytkownicy z rolą administratora.
- Hosting wysyła informację o złośliwym kodzie albo blokuje konto.
- Strona nagle zwolniła, a serwer pokazuje duże obciążenie bez wzrostu ruchu.
Przekierowania pokazywane tylko części odwiedzających są celowe: właściciel wchodzi na stronę z komputera i widzi, że wszystko działa, a klienci z telefonów trafiają gdzie indziej.
Skąd biorą się włamania na WordPressa
Najczęściej przez wtyczki. Patchstack, firma zbierająca zgłoszenia luk w WordPressie, policzyła w raporcie za 2025 rok 11 334 nowe luki: 91% we wtyczkach, 9% w motywach, a w samym WordPressie tylko 6. Według tego samego raportu mniej więcej połowa groźnych luk była wykorzystywana w ciągu doby od ujawnienia, a 46% luk nie miało poprawki w chwili, gdy o nich napisano. Druga droga to hasła: to samo hasło do panelu co do poczty, konto byłego pracownika, którego nikt nie usunął, logowanie bez drugiego kroku. Trzecia to wtyczki i motywy z nielegalnych źródeł, sprzedawane jako „Pro za darmo”, które często mają w środku gotowe tylne drzwi.
Pierwsza godzina: dostęp
Zacznij od haseł, w tej kolejności: konto u hostingu, poczta, na którą przychodzą resety haseł, panel WordPressa, dostęp FTP albo SSH, hasło do bazy danych. Zmieniaj je z komputera, któremu ufasz, i od razu włącz logowanie dwuetapowe tam, gdzie się da. Usuń z WordPressa użytkowników, których nie znasz, ale najpierw zapisz ich nazwy i daty założenia. Jak ustawić drugi krok logowania w firmie, opisałem we wpisie o weryfikacji dwuetapowej.
Kogo powiadomić
Napisz do pomocy technicznej hostingu: często mają narzędzia do skanowania plików i logi, których nie widać w panelu klienta, a czasem sami wskażą zainfekowane pliki. Jeśli stroną zajmuje się agencja albo informatyk, daj znać od razu, nawet w weekend. Jeśli klienci zgłaszają dziwne przekierowania, odpisz im krótko, że wiesz o problemie i go usuwasz, i poproś, żeby niczego nie pobierali ani nie wpisywali na stronie, na którą trafili. Gdy przez stronę wyciekły dane, kolejne kroki opisuję niżej w części o RODO.
Nie kasuj wszystkiego od razu
Pierwszy odruch to usunąć stronę i postawić ją od nowa. Zanim to zrobisz, zrób kopię obecnego stanu, razem ze złośliwym kodem: pliki, bazę i logi serwera, jeśli hosting je udostępnia. Ta kopia nie służy do odtwarzania. Służy do ustalenia, którędy weszło włamanie i od kiedy trwa. Bez tej wiedzy postawisz stronę od nowa z tą samą dziurawą wtyczką i za tydzień będzie powtórka.
Strona w trybie przerwy
Jeśli strona przekierowuje klientów albo rozsyła złośliwy kod, lepiej na kilka godzin pokazać komunikat o przerwie technicznej z numerem telefonu. Klient, który zobaczy przerwę, zadzwoni. Klient, którego strona przeniesie na podejrzaną stronę, zapamięta to na długo. Przerwę ustawisz wtyczką trybu konserwacji, plikiem na serwerze albo w panelu hostingu.
Czyszczenie albo czysta kopia
Są dwie drogi. Pierwsza to odtworzenie strony z kopii sprzed włamania. Działa, gdy wiesz, kiedy włamanie się zaczęło, i masz kopię starszą od tej daty, przechowywaną poza serwerem. Potem trzeba dograć zmiany, które powstały od tamtej pory, na przykład zamówienia w sklepie. Druga droga to czyszczenie: świeże pliki WordPressa, wtyczek i motywu pobrane ze źródła, przegląd folderu z obrazkami pod kątem plików PHP, które nie mają tam prawa być, i przegląd bazy pod kątem wstrzykniętych skryptów i obcych kont. Przy dużym sklepie często łączy się obie drogi. O kopiach, które da się odtworzyć, pisałem we wpisie o kopii strony WordPress.
Zamknij drogę wejścia
Kiedy strona jest czysta, zaktualizuj WordPressa, wszystkie wtyczki i motyw. Usuń wtyczki wyłączone i nieużywane, bo nawet wyłączona wtyczka leży na serwerze i może mieć lukę. Sprawdź, czy któraś z wtyczek nie jest porzucona przez autora: brak aktualizacji od lat to sygnał, żeby szukać zamiennika. W sklepie WinoSens, którym się opiekuję, po porządkach zostało dziewięć aktywnych wtyczek z dwudziestu dwóch. Każda usunięta to jedno miejsce mniej, w którym może pojawić się luka.
Google i ostrzeżenia
Jeśli Google oznaczył stronę jako niebezpieczną, w Search Console zobaczysz to w raporcie problemów dotyczących bezpieczeństwa. Po wyczyszczeniu strony poproś tam o ponowne sprawdzenie i opisz, co zostało zrobione. Śmieciowe podstrony, które włamywacz dodał do wyników, po usunięciu zaczną zwracać błąd 404 i znikną z indeksu z czasem. Przy dużej liczbie takich adresów pomaga tymczasowe usunięcie ich w Search Console. Mapę strony zgłoś ponownie, żeby Google szybciej zobaczył prawdziwą zawartość.
Dane klientów i RODO
Jeśli na stronie są dane klientów, na przykład konta w sklepie, zamówienia z adresami albo zgłoszenia z formularza zapisywane w bazie, trzeba ocenić, czy włamywacz mógł je zobaczyć albo skopiować. Naruszenie ochrony danych osobowych zgłasza się prezesowi UODO w ciągu 72 godzin od jego stwierdzenia (art. 33 RODO), chyba że jest mało prawdopodobne, by powodowało ryzyko dla osób, których dane dotyczą. Przy dużym ryzyku trzeba też powiadomić same osoby. Zapisz, co się stało i jak oceniłeś ryzyko, nawet jeśli uznasz, że zgłoszenie nie jest potrzebne. Incydent możesz też zgłosić do CERT Polska przez formularz zgłoszeń.
Poczta po włamaniu
Jeśli poczta firmowa jest na tym samym hostingu co strona, a serwer wysyłał spam, domena mogła trafić na listy blokujące. Klienci przestają wtedy dostawać Twoje maile, choć Ty nic nie widzisz. Po wyczyszczeniu strony sprawdź domenę na listach blokujących, przejrzyj ustawienia SPF, DKIM i DMARC i zobacz, czy maile z formularza dochodzą. Podobne objawy opisałem we wpisie o tym, dlaczego mail z formularza trafia do spamu.
Jak nie dopuścić do powtórki
- Aktualizacje wtyczek co tydzień, a krytycznych poprawek bezpieczeństwa w dniu ich wydania.
- Tylko wtyczki i motywy z oficjalnych źródeł, z aktywnym autorem.
- Logowanie dwuetapowe dla każdego konta administratora.
- Osobne konta dla każdej osoby, bez wspólnego loginu „admin”.
- Kopie poza serwerem i test odtworzenia co pół roku.
- Ktoś, kto dostaje powiadomienia z hostingu i na nie reaguje.
Jeśli Twoja strona pokazuje któryś z objawów albo chcesz, żeby ktoś regularnie pilnował aktualizacji i kopii, napisz przez formularz, co widzisz. Opiekę nad stronami opisałem na stronie pomoc IT dla firm.