webh.pl

Jak naprawić zhakowanego WordPress

Co zrobić, gdy WordPress został zhakowany: zmiana haseł, przywrócenie czystej kopii, czyszczenie, zamknięcie luki i izolacja witryn.

  • czytania
  • Zaktualizowano:
WordPress Bezpieczeństwo
Hosting

Włamanie na stronę wygląda groźnie, ale w większości przypadków da się ją odzyskać, zwłaszcza gdy masz kopię zapasową sprzed incydentu. Kluczowe jest, by działać metodycznie: Najpierw odciąć atakującemu dostęp, potem przywrócić czystą wersję, a na końcu zamknąć lukę, przez którą wszedł. Ten poradnik prowadzi przez naprawę krok po kroku, a o zapobieganiu włamaniom piszemy w artykule o bezpieczeństwie WordPress.

Najpierw potwierdź, że to włamanie

Zanim zaczniesz naprawę, upewnij się, że to faktycznie atak, a nie zwykły błąd. Typowe objawy:

  • Strona przekierowuje odwiedzających na obce, podejrzane adresy,
  • Pojawiają się treści, których nie dodawałeś (reklamy, spam, obce podstrony),
  • Przeglądarka lub wyszukiwarka ostrzega, że strona jest niebezpieczna,
  • W panelu są nieznane konta administratorów albo nieinstalowane wtyczki,
  • Serwer wysyła duże ilości poczty (spam z Twojej domeny), a strona zwalnia.

Krok 1: Nie kasuj pochopnie, najpierw zabezpiecz stan

Pierwszym odruchem bywa usuwanie podejrzanych plików, ale lepiej najpierw zachować obecny, zainfekowany stan, pobierając pliki przez FTP i eksportując bazę w phpMyAdmin. Taka kopia posłuży do analizy, gdybyś po czyszczeniu potrzebował sprawdzić, co dokładnie zostało zmienione.

Informacja

Trzymaj kopię zainfekowanego stanu osobno i wyraźnie ją opisz, żeby przez pomyłkę nie przywrócić jej później jako “czystej”.

Krok 2: Zmień wszystkie hasła

Atakujący mógł poznać dane dostępowe, więc odetnij mu drogę powrotu. Zmień hasła:

Wskazówka

Po zmianie hasła do panelu WordPress odśwież też klucze zabezpieczające (sole) w wp-config.php, generując nowe na oficjalnym generatorze WordPress. To wyloguje wszystkie sesje, więc także ewentualnego intruza.

Krok 3: Ogranicz dostęp do strony na czas naprawy

Żeby odwiedzający nie trafiali na zainfekowaną stronę i żeby atak się nie rozprzestrzeniał, na czas porządków ogranicz dostęp. Najprościej założyć hasło na katalog strony, jak opisujemy w zabezpieczaniu katalogu hasłem. Wtedy stronę otworzy tylko osoba znająca hasło.

Krok 4: Przywróć czystą kopię sprzed włamania

To najpewniejsza i najszybsza droga. Jeśli masz kopię z czasu, gdy strona była sprawna, przywróć ją w całości (pliki i bazę).

Hosting webh wykonuje kopie co godzinę i przechowuje je przez 21 dni, a przywracasz je samodzielnie z panelu hostingowego, co opisujemy w poradniku o kopiach. Wybierz kopię z momentu sprzed pierwszych objawów włamania.

Uwaga

Ustal, kiedy doszło do włamania, i przywróć kopię sprzed tej daty. Kopia wykonana już po infekcji będzie zawierać te same złośliwe pliki, więc przywrócenie jej niczego nie naprawi.

Krok 5: Gdy nie ma czystej kopii, wyczyść stronę ręcznie

Jeśli nie dysponujesz kopią sprzed włamania, stronę trzeba oczyścić samodzielnie. Zasada jest jedna: Zastępuj kod świeżymi, oryginalnymi plikami, a zachowuj wyłącznie własne treści i bazę.

  1. Wgraj na nowo rdzeń WordPress w aktualnej wersji, nadpisując pliki systemowe (z wyjątkiem wp-config.php i katalogu wp-content).
  2. Przeinstaluj wtyczki i motywy ze świeżych, oficjalnych źródeł zamiast “czyścić” zainfekowane. Usuń te z nielegalnych źródeł, bo to częste miejsce ukrycia tylnej furtki.
  3. Sprawdź katalog wp-content/uploads pod kątem plików .php. W folderze z mediami nie powinno być skryptów PHP, a ich obecność to typowy ślad włamania.
  4. Przejrzyj wp-config.php i plik .htaccess pod kątem nieznanych wpisów (np. doklejonego kodu lub przekierowań).
  5. Przeskanuj stronę wtyczką bezpieczeństwa, która wykryje zmienione i podejrzane pliki.

Informacja

Ręczne czyszczenie bywa żmudne i łatwo przeoczyć ukryty fragment kodu. Jeśli nie masz pewności, że strona jest w pełni czysta, napisz zgłoszenie. Pomożemy ustalić zakres infekcji i wskazać dalsze kroki.

Krok 6: Zamknij furtkę, przez którą weszli

Odzyskanie strony to nie koniec. Jeśli nie zamkniesz luki, atak się powtórzy.

  • Zaktualizuj wszystko: rdzeń WordPress, wtyczki i motywy. Nieaktualne oprogramowanie ze znaną luką to najczęstsza droga włamania.
  • Usuń wtyczki i motywy z nielegalnych źródeł oraz te nieużywane.
  • Wyłącz edytor plików w panelu, dodając w wp-config.php: define( 'DISALLOW_FILE_EDIT', true );.
  • Korzystaj z aktualnej wersji PHP, jak opisujemy w artykule o PHP.

Komplet zabezpieczeń zbieramy w artykule o bezpieczeństwie WordPress.

Krok 7: Sprawdź skutki uboczne

Po wyczyszczeniu strony upewnij się, że atak nie zostawił śladów, które działają dalej:

  • Konta i zadania: usuń nieznane konta administratorów i sprawdź zaplanowane zadania (cron) pod kątem obcych wpisów.
  • Wysyłka spamu: jeśli serwer rozsyłał spam, po wyczyszczeniu strony skonfiguruj pocztę przez SMTP i obserwuj, czy wysyłka wróciła do normy.
  • Wyniki w Google: w Search Console sprawdź sekcję problemów bezpieczeństwa. Jeśli Google oznaczył stronę jako niebezpieczną, po oczyszczeniu poproś o ponowne sprawdzenie.

Po co trzymać każdą witrynę na osobnym koncie

Sposób, w jaki rozmieszczasz strony, wpływa na to, jak daleko zajdzie włamanie. Jeśli kilka witryn dzieli jedno konto hostingowe, leżą w tej samej przestrzeni i “widzą się” nawzajem na poziomie plików. Wtedy infekcja jednej strony łatwo przenosi się na pozostałe (tak zwane zakażenie krzyżowe): Wystarczy jedna zaniedbana, podatna witryna, by atakujący sięgnął po sąsiednie w tym samym koncie.

Dlatego dla wysokiego bezpieczeństwa trzymaj każdą witrynę na osobnym koncie hostingowym. Usługi hostingowe webh są od siebie odizolowane, więc strony na różnych kontach nie widzą swoich plików i nie mogą się nawzajem zainfekować. Włamanie na jedną pozostaje wtedy zamknięte w jej koncie, a reszta projektów działa dalej.

To podejście szczególnie się opłaca, gdy:

  • Prowadzisz sklep lub stronę z danymi klientów, dla których ryzyko jest największe,
  • Utrzymujesz strony różnych klientów i nie chcesz, by problem jednego dotknął pozostałych,
  • Masz witryny o różnym poziomie aktualizacji, gdzie jedna zaniedbana może zagrozić reszcie.

Wskazówka

Jeśli dziś trzymasz kilka witryn na jednym koncie, rozważ rozdzielenie przynajmniej tych najważniejszych na osobne usługi. Izolacja jest tańsza niż sprzątanie po infekcji, która rozeszła się na wszystkie strony naraz.

Najczęstsze pytania

Mam kopię zapasową, czy to wystarczy, żeby naprawić stronę?

W większości przypadków tak: Przywróć kopię sprzed włamania, a potem zamknij lukę (aktualizacje, hasła, usunięcie wtyczek z niepewnych źródeł). Bez zamknięcia furtki atak może się powtórzyć mimo przywrócenia czystej wersji.

Usunąłem widoczne zmiany, czy strona jest już bezpieczna?

Niekoniecznie. Atakujący często zostawia ukrytą tylną furtkę, przez którą wraca mimo zmiany haseł. Najpewniejsze jest przywrócenie czystej kopii albo dokładne, świeże wgranie plików, a nie tylko usunięcie tego, co widać.

Czy webh wyczyści zhakowaną stronę za mnie?

Za bezpieczeństwo samej aplikacji WordPress odpowiada właściciel strony, ale nie zostajesz z tym sam. Napisz zgłoszenie: Pomożemy ustalić zakres infekcji, wskazać kopie do przywrócenia i dalsze kroki.

Czy trzymanie kilku stron na jednym koncie jest niebezpieczne?

Jest wygodne, ale strony w jednym koncie widzą się nawzajem, więc infekcja jednej może przejść na pozostałe. Dla najważniejszych witryn bezpieczniej jest trzymać każdą na osobnym koncie, bo usługi hostingowe są od siebie odizolowane.