Jak sprawdzić, czy moja strona WordPress jest zhakowana? 7 prostych testów
Większość włamań na strony firmowe nie wygląda jak w filmach. Nikt nie podmienia strony głównej na czaszkę. Przeciwnie: włamywacz robi wszystko, żebyś niczego nie zauważył — bo zainfekowana strona zarabia dla niego tylko dopóty, dopóki działa. Spam pokazuje Google, a nie Tobie. Przekierowanie uruchamia tylko dla osób wchodzących z telefonu przez wynik wyszukiwania. Obce konto administratora nazywa się tak, jak Twoja wtyczka. Dlatego „wchodzę na stronę i wszystko wygląda dobrze” nie jest testem. Poniżej siedem testów, które są — i które zrobisz sam, bez programisty, w kwadrans.
Test 1. Zapytaj Google, co widzi pod Twoją domeną
Wpisz w Google: site:twojadomena.pl (bez „www”, bez „https”). Zobaczysz listę wszystkich podstron, które Google ma w indeksie pod Twoją domeną. Przejrzyj ją, zwłaszcza dalsze strony wyników. Szukasz:
- adresów, których nie znasz — losowe katalogi i numery w stylu /ltjmnjp/341.html,
- tytułów po japońsku, chińsku, rosyjsku albo z nazwami leków, markowych butów, kasyn, pożyczek,
- liczby wyników dużo większej niż liczba Twoich podstron (strona firmowa ma ich kilkanaście, nie kilka tysięcy).
Jeśli coś takiego widzisz, masz najprawdopodobniej do czynienia z atakiem opisanym w tekście Japońskie znaki w wynikach Google pod moją stroną. Wariant tego testu: wpisz site:twojadomena.pl viagra albo site:twojadomena.pl casino. Czysta strona zwraca zero wyników.
Test 2. Zobacz stronę oczami Google, nie swoimi
Złośliwy kod bardzo często pokazuje inną treść robotowi Google niż człowiekowi — to tzw. cloaking, który wyjaśniamy w osobnym tekście: Co to jest cloaking i dlaczego nie widzisz spamu na własnej stronie. Żeby zobaczyć to, co widzi Google, potrzebujesz Google Search Console (bezpłatne; jeśli nie masz, załóż — do tego i tak wrócisz w teście 4). W Search Console wpisz adres swojej strony głównej w pole na górze (sprawdzanie adresu URL), wybierz „Testuj URL na żywo”, a potem podgląd wyrenderowanej strony i jej kodu HTML. Porównaj z tym, co widzisz w przeglądarce. Obce linki, obcy tekst, obce skrypty w wersji „dla Google” = infekcja, nawet jeśli w Twojej przeglądarce wszystko wygląda normalnie.
Test 3. Wejdź na stronę tak, jak wchodzi Twój klient
Przekierowania na obce strony uruchamiają się zwykle warunkowo: tylko z telefonu, tylko po kliknięciu w wynik wyszukiwania, tylko raz na dobę dla danej osoby (reszta dostaje ciasteczko i widzi czystą stronę). Ty wchodzisz z komputera, z zakładki, kilkanaście razy dziennie — i nigdy nie trafiasz w warunek. Zrób więc tak:
- Weź telefon, wyłącz Wi-Fi (żeby wyjść z własnej sieci, którą kod może rozpoznawać po adresie IP).
- Otwórz przeglądarkę w trybie incognito.
- Wpisz w Google nazwę swojej firmy i kliknij w wynik — nie wpisuj adresu ręcznie.
- Poczekaj kilka sekund, przewiń stronę, kliknij w dwie–trzy podstrony.
Jeśli choć raz wylądujesz na stronie z hazardem, „nagrodą”, fałszywą aktualizacją przeglądarki albo sklepem z podróbkami — to nie reklama hostingu, to włamanie. Co dalej, opisujemy w tekście Moja strona przekierowuje na inną stronę.
Test 4. Sprawdź, czy Google i przeglądarki już Cię oznaczyły
Dwa miejsca, dwie minuty:
- Raport przejrzystości Google (Safe Browsing) — wejdź na transparencyreport.google.com/safe-browsing/search i wpisz swoją domenę. Zobaczysz, czy Google uznaje stronę za niebezpieczną. Jeśli tak, Chrome, Firefox i Safari pokazują Twoim klientom czerwony ekran — więcej w tekście Czerwony ekran „Witryna zawiera złośliwe oprogramowanie”.
- Google Search Console → Bezpieczeństwo i ręczne działania → Problemy dotyczące bezpieczeństwa. To tu Google wprost pisze, że wykrył zhakowaną treść, złośliwe oprogramowanie albo przekierowania, i podaje przykładowe adresy. Tu też składa się później wniosek o ponowne sprawdzenie. Jeśli Search Console nie była skonfigurowana, Google nie miał Cię jak powiadomić — stąd tyle firm dowiaduje się o włamaniu od klientów.
Tu sprawdzisz też etykietę „Ta witryna mogła zostać zhakowana”, która pojawia się pod wynikiem w Google i odstrasza klientów skuteczniej niż konkurencja.
Test 5. Zajrzyj do panelu: konta, wtyczki, daty plików
Zaloguj się do panelu WordPressa i sprawdź trzy listy:
- Użytkownicy. Każde konto z rolą Administrator, którego nie rozpoznajesz, to alarm. Zwróć uwagę na konta z nazwami udającymi wtyczki albo system (wp_support, backup_admin, wordpress), z e-mailami w obcych domenach.
- Wtyczki. Szukaj takich, których nie instalowałeś, bez autora i opisu, z nazwą jak losowy ciąg znaków. Włamywacze instalują „wtyczki” będące w rzeczywistości tylnymi drzwiami. Sprawdź też listę wtyczek typu „must-use” (zakładka Must-Use na liście wtyczek) — tam użytkownik zwykle nie zagląda.
- Daty modyfikacji plików. W menedżerze plików na hostingu (albo przez FTP) otwórz katalog strony i posortuj po dacie modyfikacji. Pliki zmienione w nocy, w dniu, w którym nic nie aktualizowałeś, to ślad. Szczególnie podejrzane: pliki .php w katalogu wp-content/uploads (tam powinny być tylko zdjęcia i dokumenty), nowe pliki .htaccess w podkatalogach, zmieniony wp-config.php, index.php albo functions.php motywu.
Uwaga: to test wykrywający, nie naprawczy. Nie kasuj jeszcze niczego — ślady są potrzebne do ustalenia, którędy weszli; bez tego infekcja wraca.
Test 6. Przeczytaj kod źródłowy strony
Otwórz swoją stronę w przeglądarce i wciśnij Ctrl+U. Zobaczysz kod HTML. Nie musisz go rozumieć — użyj wyszukiwania w tej zakładce (Ctrl+F) i sprawdź kilka fraz:
eval(,base64,unescape(,String.fromCharCode— tak zaciemnia się złośliwe skrypty; w czystej stronie firmowej nie powinny występować (wyjątkiem bywają niektóre skrypty śledzące — jeśli masz wątpliwość, zapisz, gdzie to znalazłeś),<iframez atrybutami width="0", height="0" albo display:none — niewidoczne ramki ładujące obce strony,<script src="http— przejrzyj, z jakich domen ładują się skrypty; Google, Facebook, Twój hosting, dostawca czatu są w porządku; domeny z losowych liter, z końcówkami .top, .xyz, .icu — nie,display:nonew pobliżu list linków — ukryte linki do obcych sklepów i kasyn.
Pamiętaj o teście 2: jeśli kod stosuje cloaking, w Twojej przeglądarce może być czysto, a brudno dopiero w podglądzie z Search Console.
Test 7. Sprawdź pocztę i czarne listy
Zainfekowana strona często służy do rozsyłania spamu — niekoniecznie z Twoich skrzynek, ale z Twojego serwera i Twojej domeny. Objawy: klienci mówią, że Twoje maile trafiają do spamu; przychodzą zwroty wiadomości, których nie wysyłałeś; hosting pisze o „nadużyciu”. Wpisz swoją domenę w bezpłatne narzędzie sprawdzające czarne listy (np. MXToolbox, zakładka Blacklists). Jeśli domena albo adres IP serwera figurują na listach — ktoś wysyła z nich spam, a strona jest najczęstszym punktem wyjścia. Hosting w takiej sytuacji zwykle blokuje konto; co wtedy robić, opisujemy w tekście Hosting zablokował moją stronę z powodu malware.
Wynik: ile testów wyszło źle?
Zero — dobrze, ale powtórz testy za miesiąc i po każdej aktualizacji wtyczek. Dodaj stronę do Search Console, jeśli jeszcze jej tam nie ma — wtedy Google powiadomi Cię sam. Jeden lub więcej — strona jest najprawdopodobniej zainfekowana. Kolejność działań w pierwszej godzinie:
- Nie kasuj plików i nie przywracaj kopii zapasowej na ślepo. Kopia sprzed włamania ma tę samą lukę; bez ustalenia drogi ataku infekcja wraca w ciągu dni.
- Zmień hasła do panelu WordPressa, hostingu i FTP/SFTP — z innego komputera niż ten, z którego logujesz się na co dzień, jeśli masz taką możliwość.
- Jeśli strona przekierowuje klientów na niebezpieczne treści, włącz tryb konserwacji albo poproś hosting o tymczasowe wyłączenie strony.
- Zrób zrzuty ekranu wszystkiego, co znalazłeś w testach — to oszczędza godziny diagnozy.
- Zleć czyszczenie komuś, kto usunie kod razem z luką, zdejmie ostrzeżenia Google i blokadę hostingu i odda raport. Tak wygląda to u nas: czyszczenie strony po włamaniu, jedna stała kwota po analizie.
Dlaczego to w ogóle się dzieje
Nie dlatego, że ktoś się na Ciebie uwziął. Ataki na strony firmowe są automatyczne: boty przeczesują internet w poszukiwaniu stron z konkretną, znaną luką — zwykle w przestarzałej wtyczce — i infekują wszystko, co znajdą. Strona warsztatu w małym mieście jest dla nich tak samo dobra jak sklep z milionowym ruchem, bo liczy się moc serwera i reputacja domeny, nie Twoja branża. Skąd biorą się te luki i czy da się ich uniknąć, zostając na WordPressie, piszemy w tekście Czy WordPress jest bezpieczny?.
Pytania
Pytania o sprawdzanie strony
Jak sprawdzić, czy strona jest zhakowana?
Siedem testów bez programisty: (1) wyszukiwanie site:twojadomena.pl w Google — obce podstrony i obce języki w tytułach; (2) test na żywo w Google Search Console — strona oczami robota; (3) wejście z telefonu, bez Wi-Fi, w trybie incognito, przez wynik wyszukiwania — przekierowania warunkowe; (4) raport Safe Browsing i raport Problemy dotyczące bezpieczeństwa w Search Console; (5) obce konta, obce wtyczki i daty modyfikacji plików w panelu i na hostingu; (6) kod źródłowy strony (Ctrl+U) — zaciemnione skrypty, ukryte ramki i linki; (7) czarne listy pocztowe. Jeden zły wynik = najprawdopodobniej włamanie.
Jak sprawdzić, czy strona WordPress ma wirusa?
„Wirus na stronie” to w praktyce złośliwy kod w plikach lub bazie WordPressa. Najszybsze sprawdzenie od zewnątrz: test na żywo w Search Console i wejście jak klient (test 2 i 3). Od wewnątrz: lista użytkowników z rolą Administrator, lista wtyczek (w tym must-use), pliki .php w katalogu wp-content/uploads i pliki zmodyfikowane w dniu, w którym nic nie aktualizowałeś. Skaner we wtyczce bezpieczeństwa uzupełnia te testy, ale ich nie zastępuje.
Jakie są objawy zhakowanej strony WordPress?
Najczęstsze: przekierowania na obce strony (często tylko z telefonu lub z Google), obce podstrony w wynikach Google (japońskie znaki, leki, kasyna), etykieta „Ta witryna mogła zostać zhakowana” pod wynikiem, czerwony ekran Safe Browsing w przeglądarce, blokada konta przez hosting, zwroty maili i spam z Twojej domeny, nieznane konta administratora i wtyczki, nagły spadek pozycji, wolniejsza strona, ruch z dziwnych krajów w statystykach. Część włamań nie daje żadnych objawów widocznych dla właściciela — stąd testy.
Jak sprawdzić, czy strona jest bezpieczna według Google?
Dwa miejsca: publiczny raport przejrzystości Google Safe Browsing (transparencyreport.google.com/safe-browsing/search — wpisz domenę) oraz Google Search Console → Bezpieczeństwo i ręczne działania → Problemy dotyczące bezpieczeństwa (wymaga zweryfikowanej domeny). Pierwsze mówi, czy przeglądarki blokują stronę; drugie — czy Google wykrył zhakowaną treść, i podaje przykładowe adresy.
Co zrobić, gdy strona została zhakowana?
W pierwszej godzinie: nie kasować plików i nie przywracać kopii na ślepo; zmienić hasła do panelu, hostingu i FTP; włączyć tryb konserwacji, jeśli strona przekierowuje klientów na niebezpieczne treści; zrobić zrzuty ekranu z testów. Potem: czyszczenie z zamknięciem luki, zdjęcie ostrzeżeń Google, zabezpieczenie — albo nowa strona na fundamencie bez obcych wtyczek. Obie drogi i ceny: czyszczenie strony po włamaniu.
Czy darmowe skanery online wykryją włamanie na stronę?
Częściowo. Skanery zewnętrzne (np. Sucuri SiteCheck, VirusTotal, raport Safe Browsing) widzą tylko to, co strona pokazuje ich robotowi — a złośliwy kod z cloakingiem potrafi pokazać im czystą wersję, tak samo jak Tobie. Negatywny wynik skanera nie oznacza czystej strony; pozytywny prawie zawsze oznacza problem. Traktuj je jako jeden z testów, nie jako wyrok.
Czy wtyczka bezpieczeństwa nie zrobi tych testów za mnie?
Część tak — skaner we wtyczce porówna pliki rdzenia z oryginałami i znajdzie znane sygnatury. Nie zrobi testów 1–4, bo one patrzą na stronę z zewnątrz, oczami Google i klienta. A włamywacz, który ma dostęp do strony, ma też dostęp do wtyczki i potrafi ją wyciszyć. Testy z zewnątrz są dlatego ważniejsze.
Jak często to sprawdzać?
Testy 1 i 4 — raz w miesiącu, zajmują dwie minuty. Pozostałe — gdy cokolwiek wyda się dziwne: spadek ruchu, wolniejsza strona, dziwne maile, telefon od klienta. Najlepiej jednak mieć Search Console i monitoring zmian plików, które powiadomią Cię same.
Wszystkie testy wyszły dobrze, ale pozycje w Google spadły. Co jeszcze?
Spadek pozycji ma wiele przyczyn niezwiązanych z włamaniem: aktualizacje algorytmu, wolna strona, konkurencja, utrata linków. Jeśli testy są czyste, a Search Console nie zgłasza problemów bezpieczeństwa, szukaj przyczyny w wydajności i treści — o szybkości strony piszemy w tekście Bezpieczna i szybka strona internetowa.
Mam stronę nie na WordPressie. Czy te testy działają?
Testy 1, 2, 3, 4, 6 i 7 są niezależne od systemu — działają dla Joomli, PrestaShop, strony z kreatora i strony pisanej ręcznie. Test 5 wymaga dostosowania do panelu danego systemu, ale zasada jest ta sama: obce konta, obce rozszerzenia, pliki zmienione bez Twojej wiedzy.
Któryś test wyszedł źle?
Wyślij zrzuty ekranu. Po analizie podamy jedną stałą kwotę za czyszczenie razem z zamknięciem luki i zdjęciem ostrzeżeń Google.