Hosting zablokował stronę przez wirusa – co zrobić
- Typowe objawy
- Mail o złośliwych plikach, strona 403, niedziałające formularze, brak dostępu do FTP
- Najczęstsza przyczyna
- Infekcja przez nieaktualną wtyczkę, przejęte hasło lub zapomnianą starą stronę na koncie
- Czas naprawy
- Czyszczenie od kilku godzin, odblokowanie zwykle do jednego dnia roboczego
- Czy zrobisz to sam?
- Tak, jeśli dostęp nie jest odcięty całkowicie i znasz FTP oraz phpMyAdmin
Szybka odpowiedź
Gdy hosting zablokuje stronę przez wirusa, nie zmieniaj od razu uprawnień plików i nie przenoś strony gdzie indziej. Zaloguj się do panelu ręcznie (nie przez link w mailu), zapisz listę wskazanych plików, zrób kopię, zmień wszystkie hasła i odpowiedz hostingowi, że się tym zajmujesz. Potem wyczyść całe konto, załataj lukę i poproś o odblokowanie, opisując, co dokładnie zrobiłeś.
Mail od hostingu o wykryciu złośliwego oprogramowania zwykle przychodzi w najgorszym momencie: strona nagle pokazuje błąd, formularz kontaktowy milczy, a Ty nie wiesz, czy to koniec Twojej strony. Nie jest. Blokada to środek bezpieczeństwa, a nie kara. Hosting chroni swoje serwery, inne strony na tej samej maszynie i adresy IP, z których wychodzi poczta.
Ten poradnik dotyczy sytuacji, w której hosting już zareagował. Jeśli dopiero podejrzewasz infekcję, zacznij od artykułu Jak sprawdzić, czy strona została zhakowana. Pełną procedurę czyszczenia WordPressa opisuję w poradniku Wirus na stronie WordPress. Tutaj skupiam się na tym, co jest specyficzne dla blokady: na mailu, ograniczonym dostępie i rozmowie z hostingiem.
Co oznacza blokada i co dokładnie zablokowano
„Zablokowana strona” może oznaczać kilka różnych rzeczy. Hostingi w Polsce (home.pl, nazwa.pl, cyber_Folks, LH.pl, OVH i inne) stosują podobne mechanizmy, choć każdy nazywa je po swojemu i w innym miejscu panelu. Zanim cokolwiek zrobisz, ustal, który rodzaj blokady Cię dotyczy, bo od tego zależy, czym możesz pracować.
Kilka uwag do tej mapy:
- Uprawnienia katalogu. Przykładowo dokumentacja OVHcloud opisuje dwa poziomy blokady na katalogu głównym FTP:
700(strona nie działa, ale do plików wejdziesz przez FTP) i000(najpierw trzeba się skontaktować z pomocą techniczną). U innych firm szczegóły mogą wyglądać inaczej, ale zasada jest ta sama. - Kwarantanna plików. Skaner na serwerze potrafi odebrać prawa pojedynczym plikom albo przenieść je w inne miejsce. Jeśli taki plik był częścią wtyczki, strona może pokazać komunikat „Na tej stronie wystąpił błąd krytyczny”. Nie przywracaj takiego pliku, tylko zainstaluj wtyczkę od nowa z czystego źródła.
- Poczta. Odcięcie wysyłki to reakcja na spam wychodzący z Twojego konta. Hosting robi to, żeby jego adresy IP nie trafiły na czarne listy.
Jak przeczytać maila od hostingu i listę plików
Zanim zaczniesz działać, upewnij się, że mail jest prawdziwy. Oszuści podszywają się pod hostingi i rejestratorów, strasząc blokadą i podsuwając link do „panelu”. Nie klikaj w linki z wiadomości. Wpisz adres panelu klienta ręcznie albo użyj zakładki i sprawdź, czy ta sama informacja jest w panelu lub w systemie zgłoszeń.
Prawdziwy mail od hostingu zwykle zawiera:
- datę wykrycia, która pomoże Ci zawęzić przeszukiwanie logów,
- listę ścieżek do plików uznanych za złośliwe, czasem z nazwą wykrytego zagrożenia,
- opis podjętych działań: co zablokowano i na jak długo,
- termin i oczekiwania: co masz zrobić i jak potwierdzić, że skończyłeś.
Lista plików mówi więcej, niż się wydaje. Tak ją czytam:
| Ścieżka na liście | Co zwykle oznacza |
|---|---|
wp-content/uploads/…/*.php | Prawie na pewno wgrany plik atakującego. W katalogu na obrazki nie powinno być żadnego pliku PHP. |
wp-content/plugins/nazwa-wtyczki/… | Albo zainfekowana wtyczka, albo luka właśnie w niej. Sprawdź jej wersję i datę ostatniej aktualizacji. |
wp-includes/, wp-admin/ | Zmieniony rdzeń WordPressa. Atakujący miał zapis do całej instalacji. |
| Pliki o losowych nazwach w katalogu głównym | Tylne furtki lub skrypty do wysyłki spamu. |
| Ścieżki z innego katalogu niż Twoja strona | Zainfekowana druga strona na tym samym koncie, np. stara wersja w podkatalogu albo porzucona instalacja testowa. |
Traktuj tę listę jako próbkę, a nie inwentarz. Skaner hostingu znajduje pliki pasujące do znanych wzorców. Kod w bazie danych, zmodyfikowane pliki rdzenia i nietypowe furtki często umykają mu w pierwszym przebiegu. Zdarzają się też fałszywe alarmy, zwłaszcza w płatnych wtyczkach z zaciemnionym kodem licencji. To jednak rzadkość. Plik z listy uznaj za winny, dopóki nie udowodnisz, że jest identyczny z oryginałem.
- Nie przywracaj samodzielnie uprawnień katalogu przed wyczyszczeniem. Hosting to zauważy, a otwarta zainfekowana strona może skończyć się zawieszeniem całej usługi.
- Nie przenoś strony do innego hostingu. Razem z plikami przeniesiesz infekcję i lukę.
- Nie usuwaj konta ani instalacji „na czysto”, zanim zrobisz kopię. Bez niej stracisz treści i ślady, które pokazują, którędy weszli atakujący.
Plan działania na pierwsze godziny
Ta oś czasu pokazuje kolejność, którą stosuję po blokadzie. Czasy są orientacyjne. Ważniejsza jest kolejność: najpierw kopia i hasła, potem czyszczenie, na końcu prośba o odblokowanie.
-
Zapisz maila i listę plików
Skopiuj listę ścieżek do osobnego pliku tekstowego. Jeśli lista jest w panelu hostingu, zrób zrzut ekranu. Za tydzień, przy porównaniu z nowym skanem, będzie bezcenna.
-
Zrób kopię plików i bazy danych w obecnym stanie
Pobierz wszystko, co się da: przez FTP, menedżer plików w panelu albo z kopii zapasowych hostingu. Wyeksportuj bazę w phpMyAdmin. Opisz kopię jako zainfekowaną, żeby jej przypadkiem nie przywrócić. Jeśli masz klienta FTP w terminalu, całość pobierzesz jednym poleceniem:
# lftp: kopia całego konta do katalogu lokalnego lftp -u login ftp.twojadomena.pl -e "mirror --verbose / ./kopia-zainfekowana; quit"Przy blokadzie
000nie pobierzesz plików. Wtedy poproś hosting o paczkę z kopii zapasowej albo o tymczasowe zdjęcie blokady do odczytu. -
Wyślij hostingowi krótką odpowiedź
Napisz, że przyjmujesz zgłoszenie i nad nim pracujesz. Zapytaj o to, czego potrzebujesz. Wzór znajdziesz w następnej sekcji. Szybka odpowiedź pokazuje, że właściciel panuje nad sytuacją, i zmniejsza ryzyko, że hosting zaostrzy blokadę.
-
Zmień hasła
Z komputera, któremu ufasz, zmień hasło do panelu hostingu, kont FTP i SSH, użytkownika bazy danych (nowe hasło wpisz w
wp-config.php) i wszystkich administratorów WordPressa. Wygeneruj nowe klucze bezpieczeństwa WordPressa (wp config shuffle-salts), co wyloguje wszystkie sesje. Jeśli z konta wychodził spam, zmień też hasła do skrzynek pocztowych w domenie. -
Wyczyść całe konto, nie tylko jedną stronę
Procedurę czyszczenia krok po kroku opisuję w poradniku Wirus na stronie WordPress. Przy blokadzie zwróć szczególną uwagę na katalogi spoza głównej strony: stare kopie w podkatalogach, sklepy testowe, zapomniane instalacje. Na koncie współdzielonym wszystkie zwykle działają jako ten sam użytkownik systemowy, więc jedna zaniedbana instalacja może zarażać pozostałe.
-
Załataj lukę
Zaktualizuj WordPressa, wtyczki i motywy. Usuń dodatki porzucone przez autorów i wszystko z nieoficjalnych źródeł. Ustaw wspieraną wersję PHP: WordPress zaleca obecnie 8.3 lub nowszą. Bez tego kroku nie proś o odblokowanie, bo infekcja wróci, często w ciągu doby.
Jak odpowiedzieć hostingowi
Pierwsza odpowiedź ma być krótka i rzeczowa. Nie tłumacz się i nie obiecuj terminów, których nie dotrzymasz. Poproś o informacje, które przyspieszą czyszczenie. Wysyłaj ją przez system zgłoszeń w panelu albo jako odpowiedź na zweryfikowany mail, zachowując numer zgłoszenia w temacie.
Dzień dobry,
potwierdzam otrzymanie zgłoszenia nr [numer] dotyczącego konta [login].
Zabezpieczyłem kopię danych i zmieniłem hasła. Rozpoczynam czyszczenie.
Proszę o:
1. pełną listę plików wykrytych przez skaner (również z innych katalogów),
2. logi dostępu do serwera WWW z ostatnich 14 dni, jeśli są dostępne,
3. informację, czy możliwe jest przywrócenie uprawnień do odczytu i zapisu
przez FTP na czas czyszczenia, przy zachowaniu blokady strony dla
odwiedzających.
Po zakończeniu prac prześlę opis wykonanych działań i poproszę
o ponowne sprawdzenie konta.
Pozdrawiam,
[imię i nazwisko, telefon]
Logi dostępu to najlepsze źródło wiedzy o tym, którędy weszli atakujący. Wiele hostingów pozwala je pobrać samodzielnie z panelu, ale przechowuje je krótko. Im szybciej o nie poprosisz, tym więcej zobaczysz.

Jak czyścić, gdy dostęp jest ograniczony
Blokada często utrudnia samą naprawę. Oto, jak pracuję w typowych sytuacjach.
Strona nie działa, ale FTP tak
To najwygodniejszy wariant. Pracujesz na plikach normalnie, a odwiedzający nie trafiają na zainfekowaną stronę. Nie zmieniaj uprawnień katalogu głównego do końca czyszczenia. Wyjątek: hosting w instrukcji sam każe Ci to zrobić. Na przykład OVHcloud opisuje przywrócenie dostępu poleceniem FTP SITE CHMOD 705 / wysyłanym z klienta FTP, ale zaleca to dopiero po zabezpieczeniu strony.
Pojedyncze pliki mają odebrane uprawnienia
Część skanerów odbiera plikom w kwarantannie wszystkie uprawnienia (000), inne przenoszą je do osobnego katalogu albo zmieniają im nazwę. Pliki bez uprawnień znajdziesz przez SSH tak:
find . -type f -perm 0000 -printf '%p\n'
Nie przywracaj im uprawnień i nie próbuj ich czyścić. Jeśli należą do rdzenia WordPressa, wtyczki lub motywu, podmień cały katalog na świeży z oficjalnego źródła. Jeśli nie należą do niczego, co znasz, usuń je. Gdy serwer nie pozwala Ci ich usunąć, dopisz je do listy dla hostingu.
Brak FTP i SSH, działa tylko panel
Większość paneli ma menedżer plików i dostęp do phpMyAdmin. Da się w nich wyczyścić małą stronę, choć wolniej. Przy większych instalacjach lepiej poprosić hosting o przywrócenie FTP na czas prac, najlepiej z nowym hasłem. Niektóre hostingi pozwalają też ograniczyć dostęp FTP do Twojego adresu IP.
Usługa zawieszona całkowicie
Zostaje praca na kopii. Poproś hosting o paczkę z danymi lub o dostęp do kopii zapasowych. Wyczyść kopię lokalnie: podmień rdzeń i dodatki, przeszukaj bazę. Potem uzgodnij z hostingiem wgranie czystej wersji. Jeśli strona to sklep, sprawdź, czy do momentu blokady nie wpłynęły zamówienia, których nie masz w kopii.
Jeśli hosting odciął wysyłkę przez mail(), nie obchodź blokady wtyczką SMTP przed wyczyszczeniem strony. Spam zacznie wychodzić inną drogą, tym razem z Twojej skrzynki. Po odblokowaniu wysyłka przez SMTP z uwierzytelnianiem jest dobrym pomysłem, bo poprawia dostarczalność maili ze sklepu.
Jak poprosić o odblokowanie
Hosting odblokuje konto szybciej, jeśli zobaczy, że problem rozwiązano u źródła, a nie tylko usunięto pliki z listy. W prośbie opisz trzy rzeczy: co znalazłeś, co usunąłeś lub wymieniłeś i jak zamknąłeś lukę.
Dzień dobry,
w sprawie zgłoszenia nr [numer] informuję, że konto zostało wyczyszczone:
- usunięto pliki wskazane przez skaner oraz [liczba] dodatkowych plików
znalezionych w wp-content/uploads i katalogu głównym,
- rdzeń WordPressa, wtyczki i motywy zainstalowano ponownie z oficjalnych
źródeł; usunięto nieużywane i nieaktualizowane dodatki,
- przejrzano bazę danych i usunięto obce skrypty oraz nieznane konta
administratorów,
- prawdopodobna przyczyna: [np. nieaktualna wtyczka X w wersji Y],
zaktualizowana do wersji Z,
- zmieniono hasła do panelu, FTP, bazy danych i kont WordPressa.
Proszę o ponowne przeskanowanie konta i zdjęcie blokady.
Pozdrawiam,
[imię i nazwisko, telefon]
Po odblokowaniu sprawdź od razu:
- czy strona działa na telefonie i w oknie prywatnym, bez przekierowań (opisuję to w artykule Strona przekierowuje na inną stronę),
- czy Google nie oznaczył strony jako niebezpiecznej; jeśli tak, przejdź do poradnika Strona zawiera szkodliwe programy,
- czy działają formularze i maile ze sklepu,
- czy uprawnienia plików są typowe dla WordPressa: zwykle
644dla plików i755dla katalogów.
Przez kolejne dwa tygodnie codziennie sprawdzaj, czy nie pojawiły się nowe pliki PHP i nowe konta administratorów. Druga blokada w krótkim czasie to dla hostingu sygnał, że właściciel nie panuje nad stroną, i rozmowa bywa wtedy trudniejsza.
Firma usługowa dostaje w piątek wieczorem maila, że jej konto rozsyła spam. Strona pokazuje 403, formularz nie wysyła wiadomości. Na liście od hostingu są trzy pliki PHP w wp-content/uploads. Właściciel usuwa je i prosi o odblokowanie. Po kilku godzinach skan znajduje nowe pliki, bo źródłem była stara kopia strony w katalogu /old z wtyczką nieaktualizowaną od lat. Pomaga dopiero usunięcie starej kopii, wyczyszczenie głównej strony i druga, rzetelnie opisana prośba o odblokowanie.
Kiedy nie robić tego samemu
Jeśli blokada dotyczy prostej strony wizytówki, masz dostęp przez FTP i nie boisz się phpMyAdmin, dasz radę sam. Oddaj sprawę specjaliście, gdy:
- to sklep i każda godzina blokady oznacza utracone zamówienia,
- hosting zablokował konto po raz drugi albo dał Ci krótki termin pod groźbą rozwiązania umowy,
- dostęp jest odcięty całkowicie i trzeba czyścić kopię, a potem uzgadniać jej wgranie,
- na koncie jest kilka stron i nie wiesz, która jest źródłem infekcji.
Orientacyjne koszty opisuję w artykule Ile kosztuje usunięcie wirusa ze strony.
Hosting dał Ci termin, a Ty nie masz na to czasu?
Przejmuję kontakt z hostingiem, czyszczę konto, zamykam lukę i opisuję prośbę o odblokowanie. Odwirusowanie kosztuje 499 zł netto, przyjmuję zgłoszenia 24/7, a po czyszczeniu daję 30 dni gwarancji czystości.
Najczęstsze pytania
Czy hosting może usunąć moją stronę przez wirusa?
Zwykle najpierw ją blokuje, a nie usuwa. Regulaminy hostingów pozwalają jednak zawiesić usługę, a przy braku reakcji nawet ją rozwiązać. Dlatego odpowiedz na maila jak najszybciej, nawet jeśli na razie piszesz tylko, że zajmujesz się sprawą, i od razu zrób kopię plików oraz bazy.
Czy wystarczy usunąć pliki wymienione w mailu od hostingu?
Nie. Skaner hostingu znajduje pliki pasujące do znanych wzorców, ale tylne furtki, kod w bazie danych i zmienione pliki rdzenia często umykają. Lista z maila to punkt wyjścia. Jeśli usuniesz tylko ją, infekcja zwykle wraca, a hosting blokuje konto ponownie.
Ile trwa odblokowanie strony przez hosting?
Po wysłaniu informacji o wyczyszczeniu hosting zwykle ponownie skanuje konto i zdejmuje blokadę w ciągu kilku godzin do jednego dnia roboczego. Czas zależy od firmy, pory zgłoszenia i od tego, czy skan nie znajdzie nowych plików.
Czy przeniesienie strony do innego hostingu rozwiąże problem?
Nie. Przenosisz razem z plikami tę samą infekcję i tę samą lukę. Nowy hosting może zablokować stronę po kilku dniach, a Ty tracisz czas na migrację. Najpierw wyczyść stronę, potem decyduj o przeprowadzce.
Dlaczego po blokadzie nie działa wysyłka maili ze strony?
Złośliwe skrypty często rozsyłają spam z serwera. Hosting odcina wtedy funkcję mail() w PHP albo nakłada limit wysyłki, żeby jego serwery nie trafiły na czarne listy. Formularze kontaktowe i powiadomienia sklepu milkną, dopóki blokada nie zostanie zdjęta.