Jak sprawdzić, czy strona jest zhakowana – 12 objawów
- Typowe objawy
- Dziwne wyniki w Google, przekierowania, ostrzeżenia, spadek ruchu
- Najczęstsza przyczyna
- Nieaktualna wtyczka lub motyw, przejęte hasło
- Czas sprawdzenia
- 5 minut na szybki test, około godziny na pełną listę
- Czy zrobisz to sam?
- Tak. Sprawdzenie nie wymaga zmian na stronie
Szybka odpowiedź
Aby sprawdzić, czy strona jest zhakowana, wpisz w Google site:twojadomena.pl i szukaj obcych treści, otwórz stronę z telefonu w trybie incognito, sprawdź adres w Raporcie przejrzystości Google, a w Search Console raporty „Problemy dotyczące bezpieczeństwa” i „Ręczne działania”. Potem przejrzyj listę administratorów i nowe pliki PHP na serwerze. Obcy administrator, plik PHP w katalogu z obrazkami albo ostrzeżenie od Google to niemal pewne włamanie.
Włamanie na stronę rzadko wygląda jak w filmach. Nie ma czaszki na stronie głównej ani komunikatu od hakerów. Atakującym zależy na tym, żeby strona działała dalej i żebyś niczego nie zauważył, bo wtedy mogą dłużej wysyłać z niej spam, przekierowywać Twoich klientów albo pozycjonować swoje podstrony na Twojej domenie.
Poniżej jest 12 objawów, które sprawdzam, gdy właściciel strony pisze „coś jest nie tak”. Przy każdym podaję, jak go sprawdzić samodzielnie i jak mocny to sygnał. Nic z tej listy nie zmienia niczego na stronie, więc nie ma ryzyka, że coś zepsujesz.
Test 5-minutowy: od czego zacząć
Jeśli masz mało czasu, zrób te pięć kroków w tej kolejności. Nie wymagają logowania do serwera.
Jak pewny jest każdy sygnał
Nie każdy objaw oznacza włamanie. Spadek ruchu może mieć sto przyczyn, a obcy administrator praktycznie jedną. Ta siatka pokazuje, jak traktować każdy z 12 objawów opisanych niżej.
12 objawów włamania i jak je sprawdzić
1. Obce strony w wynikach Google (site:)
Wpisz w Google site:twojadomena.pl. Zobaczysz podstrony, które Google zna z Twojej domeny. Przewiń kilka stron wyników. Szukaj tytułów po japońsku lub chińsku, ofert leków, podróbek markowych produktów, kasyn i pożyczek. Dla pewności dodaj słowa, które często pojawiają się w spamie, np. site:twojadomena.pl viagra albo site:twojadomena.pl casino.
Pewność: wysoka. Jeśli pod Twoją domeną są strony, których nie tworzyłeś, ktoś je wygenerował. Najczęstszy wariant opisuję w artykule Japońskie znaki w Google przy mojej stronie.
2. Search Console: problemy z bezpieczeństwem i ręczne działania
W Google Search Console otwórz w menu raport Problemy dotyczące bezpieczeństwa, a obok Ręczne działania. Pierwszy pokaże wykryte złośliwe oprogramowanie, phishing czy zhakowane treści, drugi kary nałożone ręcznie, np. za spam powstały po włamaniu. Komunikat, że nie wykryto problemów, jest dobrym znakiem, ale nie gwarancją.
Przy okazji wejdź w Ustawienia, w sekcję Użytkownicy i uprawnienia. Obca osoba zweryfikowana jako właściciel to klasyczny ślad włamania: atakujący dodaje się do Search Console, żeby zgłaszać do indeksu swoje spamerskie podstrony.
Pewność: wysoka. Nie masz Search Console? Załóż ją teraz i zweryfikuj przez DNS, dane o bezpieczeństwie pojawią się po weryfikacji.
3. Raport przejrzystości Google
Wejdź na narzędzie stanu witryny w Raporcie przejrzystości Google i wpisz adres strony. Narzędzie pokazuje, czy Bezpieczne przeglądanie Google uznaje stronę za niebezpieczną. To ta sama baza, która wyświetla czerwone ostrzeżenia w Chrome i innych przeglądarkach. Działa bez logowania, więc sprawdzisz w ten sposób także stronę, do której nie masz dostępu.
Pewność: wysoka. Co dalej przy ostrzeżeniu, opisuję w artykule Ostrzeżenie Google „szkodliwe programy”.
4. Przekierowania widoczne tylko dla części odwiedzających
Złośliwy kod często przekierowuje tylko telefony, tylko osoby wchodzące z Google i tylko raz na jakiś czas, a pomija zalogowanych administratorów. Sprawdzenie z Twojego komputera niczego nie pokaże. Zrób tak:
- Na telefonie wyłącz Wi-Fi (żeby wyjść z innego adresu IP niż firmowy) i otwórz okno prywatne lub incognito.
- Wyszukaj w Google nazwę swojej firmy i wejdź na stronę z wyników, a nie przez wpisanie adresu.
- Kliknij kilka podstron. Powtórz na drugiej przeglądarce.
Pewność: średnia. Przekierowanie na obcą stronę to niemal zawsze infekcja, ale czasem winna jest agresywna reklama z zewnętrznej sieci reklamowej osadzona na stronie. Więcej w artykule Strona przekierowuje na kasyno lub aptekę.
5. Nowi administratorzy
W WordPressie wejdź w Użytkownicy i przefiltruj listę po roli Administrator. Każde konto, którego nie rozpoznajesz, jest podejrzane, zwłaszcza o nazwach udających wsparcie techniczne albo z adresem e-mail w nieznanej domenie. Przez SSH:
wp user list --role=administrator --fields=ID,user_login,user_email,user_registered
Kolumna user_registered pokaże datę założenia konta, co pomaga ustalić, kiedy nastąpiło włamanie. Część infekcji ukrywa konto na liście w panelu, więc gdy masz wątpliwości, sprawdź też tabelę wp_users w phpMyAdmin.
Pewność: wysoka, o ile nikt z Twojej firmy ani wykonawców nie zakładał konta.
6. Nowe pliki na serwerze
W katalogu wp-content/uploads powinny być tylko obrazki i dokumenty. Plik PHP w tym miejscu to prawie zawsze tylna furtka. Przez SSH, w katalogu strony:
# pliki PHP w uploads
find wp-content/uploads -type f -name "*.php"
# pliki PHP zmienione w ciągu ostatnich 7 dni
find . -type f -name "*.php" -mtime -7
# zgodność plików rdzenia z oryginałem
wp core verify-checksums
Bez SSH otwórz menedżer plików w panelu hostingu albo klienta FTP i posortuj pliki po dacie modyfikacji. Szukaj też plików o losowych nazwach w katalogu głównym, np. wp-xyzq.php, oraz katalogu wp-content/mu-plugins, którego wiele stron w ogóle nie ma.
Pewność: wysoka przy plikach PHP w uploads. Zmienione pliki same w sobie mogą wynikać z aktualizacji, więc porównaj daty z datą ostatnich aktualizacji.
7. Spam wysyłany z serwera
Sygnały: zwroty maili, których nikt nie wysyłał, klienci, którzy dostają od Ciebie dziwne wiadomości, informacja od hostingu o blokadzie wysyłki albo maile firmowe nagle trafiające do spamu. Sprawdź w panelu hostingu statystyki wysyłki poczty lub kolejkę maili, jeśli hosting je udostępnia. Sprawdź też, czy adres IP serwera nie trafił na publiczne czarne listy spamu.
Pewność: średnia. Spam z serwera to zwykle skrypt podrzucony na stronę albo przejęte konto pocztowe, ale bywa też skutkiem nadużywanego formularza kontaktowego bez zabezpieczenia przed botami.
8. Nieznane zadania cron
Atakujący lubią cron, bo pozwala odtworzyć usunięte pliki co kilka minut. Sprawdź dwa miejsca. Zadania serwera znajdziesz w panelu hostingu, w sekcji zadań cron, albo przez SSH:
crontab -l
Zadania WordPressa, który ma własny harmonogram, wyświetlisz poleceniem:
wp cron event list
Podejrzane są wpisy, które pobierają coś z internetu (curl, wget) i uruchamiają, wywołują pliki o dziwnych nazwach albo zawierają długie zakodowane ciągi. W WordPressie podejrzane są zdarzenia o nazwach, których nie da się przypisać do żadnej zainstalowanej wtyczki.
Pewność: wysoka, gdy zadanie pobiera i uruchamia kod z zewnątrz. Nieznane zdarzenie WordPressa może też być pozostałością po usuniętej wtyczce.
9. Zmienione tytuły i opisy w wynikach
Wyszukaj w Google nazwę firmy i porównaj tytuł oraz opis strony w wynikach z tym, co masz na stronie. Jeśli Google pokazuje tytuł o lekach lub obcy tekst, a na stronie wszystko wygląda normalnie, to klasyczny cloaking: strona pokazuje robotowi Google inną treść niż ludziom. Sprawdzisz to w Search Console narzędziem Sprawdzanie adresu URL, opcją testu wersji opublikowanej i podglądem pobranej strony.
Pewność: średnia. Google czasem sam przepisuje tytuły, ale robi to na podstawie treści Twojej strony, a nie wstawia oferty leków.
10. Nagły spadek ruchu
W Google Analytics i w Search Console, w raporcie Skuteczność, sprawdź, czy ruch z Google spadł gwałtownie w ciągu kilku dni. Włamanie potrafi go obniżyć przez ostrzeżenia w przeglądarce, ręczne działania albo zalanie indeksu spamem.
Pewność: niska. Ruch spada także po aktualizacjach algorytmu Google, po zmianach na stronie, przez błąd w kodzie pomiarowym albo sezonowo. Traktuj to jako powód do sprawdzenia objawów 1–3, a nie dowód.
11. Ostrzeżenia od hostingu
Przejrzyj skrzynkę, na którą przychodzą maile z hostingu, łącznie ze spamem. Hostingi skanują konta i informują o wykryciu złośliwych plików, nadmiernym obciążeniu, wysyłce spamu, a w skrajnych przypadkach blokują stronę. W panelu hostingu sprawdź też, czy nie ma tam komunikatu lub wyników skanera.
Pewność: zależy od treści. Informacja o wykryciu malware to pewny sygnał, a o przekroczeniu limitów zasobów może oznaczać zarówno włamanie, jak i zwykły wzrost ruchu albo atak botów na formularz logowania. Jeśli strona jest już zablokowana, zobacz co zrobić, gdy hosting zablokował stronę.
12. Dziwne linki i skrypty w kodzie źródłowym
Otwórz stronę w przeglądarce, naciśnij Ctrl+U (na Macu Cmd+Option+U), żeby zobaczyć kod źródłowy, i przeszukaj go (Ctrl+F) pod kątem:
- linków do stron z lekami, kasynami lub pożyczkami, często ukrytych stylem
display:nonealbo umieszczonych poza ekranem, - tagów
<script>ładowanych z domen, których nie znasz, - długich ciągów losowych znaków, np. w
eval(,atob(alboString.fromCharCode.
Pewność: średnia. Twoja strona legalnie ładuje skrypty Google, czatu, systemu cookies czy sklepu, więc obca domena wymaga sprawdzenia, do czego służy. Ukryty link do apteki legalny nie jest nigdy.

Właścicielka gabinetu fizjoterapii zauważa, że od kilku dni nie dostaje zapytań z formularza kontaktowego. Strona wygląda normalnie. Okazuje się, że hosting wyłączył wysyłkę poczty z konta, bo w ciągu doby wyszło z niego kilkadziesiąt tysięcy spamowych wiadomości, a informacja o blokadzie trafiła na skrzynkę, której nikt nie czyta. W katalogu uploads leży plik PHP sprzed dwóch miesięcy, a w crontabie zadanie, które co kwadrans pobiera go od nowa. Samo usunięcie skryptu wysyłającego pocztę nic by nie dało, dopóki działało zadanie cron i nieaktualna wtyczka, przez którą weszli atakujący.
Co zrobić, jeśli objawy się potwierdzą
- Nie usuwaj podejrzanych plików przed zrobieniem kopii. Kopia stanu „zainfekowanego” pomaga ustalić, jak weszli atakujący, i ratuje sytuację, gdy usuniesz coś potrzebnego.
- Zmień hasła z czystego komputera: do hostingu, FTP, bazy i administratorów strony.
- Nie przywracaj na ślepo starej kopii. Infekcja zwykle zaczyna się wcześniej niż objawy.
Pełną procedurę czyszczenia krok po kroku, z poleceniami do skopiowania, opisuję w artykule Wirus na stronie WordPress – jak go usunąć krok po kroku. Po wyczyszczeniu zgłoś stronę w Search Console przyciskiem „Poproś o sprawdzenie” w raporcie Problemy dotyczące bezpieczeństwa. Według Google rozpatrzenie trwa około doby przy phishingu, kilka dni przy złośliwym oprogramowaniu i nawet kilka tygodni przy spamie po włamaniu.
Włącz automatyczne aktualizacje wtyczek, logowanie dwuskładnikowe dla administratorów i codzienną kopię poza serwerem. Raz w miesiącu powtórz test 5-minutowy. Jeśli nie masz dostępu do części kont potrzebnych do sprawdzenia, zacznij od artykułu Jak odzyskać dostęp do strony internetowej.
Kiedy nie robić tego samemu
Sprawdzenie objawów zrobisz sam. Czyszczenie to inna sprawa. Oddaj je specjaliście, gdy:
- masz pewny sygnał (czerwony na siatce), a strona to sklep z zamówieniami i danymi klientów,
- Google pokazuje czerwone ostrzeżenie albo hosting zablokował konto i każda godzina kosztuje,
- nie masz dostępu SSH ani doświadczenia z phpMyAdmin, a infekcja jest w plikach i bazie,
- objawy wróciły po wcześniejszym czyszczeniu.
Orientacyjne koszty opisuję w artykule Ile kosztuje usunięcie wirusa ze strony.
Podejrzewasz włamanie? Sprawdzę to
Zweryfikuję objawy, a jeśli strona jest zainfekowana, wyczyszczę ją, zamknę lukę i zgłoszę do weryfikacji w Google. Odwirusowanie kosztuje 499 zł netto, z reakcją 24/7 i 30 dniami gwarancji czystości.
Najczęstsze pytania
Czy strona może być zhakowana, jeśli wygląda normalnie?
Tak, i to częsty przypadek. Złośliwy kod potrafi pokazywać spam tylko robotom Google, przekierowywać tylko telefony albo tylko osoby wchodzące z wyszukiwarki, a zalogowanemu administratorowi nie pokazywać niczego. Dlatego sprawdzaj stronę z telefonu, w oknie incognito i przez wyniki Google, a nie tylko z własnego komputera.
Czy darmowy skaner online wystarczy, żeby sprawdzić stronę?
Nie. Skaner online widzi tylko to, co strona pokazuje odwiedzającym w chwili skanowania. Nie zobaczy tylnej furtki w plikach, obcego administratora ani zadania cron. Czysty wynik skanera nie wyklucza włamania, a wynik z ostrzeżeniem jest mocnym sygnałem do dalszego sprawdzania.
Jak sprawdzić, czy Google oznaczył moją stronę jako niebezpieczną?
Sprawdź adres w narzędziu stanu witryny w Raporcie przejrzystości Google, a jeśli masz Search Console, otwórz raport Problemy dotyczące bezpieczeństwa oraz Ręczne działania. Jeśli Google wykrył problem, zobaczysz tam jego rodzaj i przykładowe adresy.
Co zrobić, jeśli potwierdzę włamanie?
Nie usuwaj niczego na ślepo. Zrób pełną kopię plików i bazy w obecnym stanie, zmień hasła z czystego komputera, a potem wyczyść stronę według pełnej procedury: pliki, baza, administratorzy, aktualizacje i zgłoszenie do Google. Jeśli to sklep albo hosting zablokował konto, rozważ zlecenie czyszczenia.