Telefon w czwartek wieczorem: „Szymon, coś się dzieje. Strona najpierw się zawiesiła, a teraz wyświetla jakiś obcy tekst”.
Panika w takiej sytuacji jest naturalna. Jest też najgorszym możliwym doradcą. Jeśli wiesz, co robić po kolei, w kilka godzin strona może wrócić do normy — a przede wszystkim przestaje szkodzić Twoim klientom i Twojej pozycji w Google.
Pracuję z firmami od ponad dziesięciu lat i podrzuconego kodu widziałem więcej, niż bym chciał. Poniżej dokładnie to, co robić w pierwszych minutach po odkryciu — i w kolejnych dniach.
Zanim zaczniesz
Włamanie prawie nigdy nie oznacza końca firmy. Oznacza kilka godzin nieprzyjemnej pracy. Co roku przejmowane są setki tysięcy stron i zdecydowana większość z nich wraca do działania.
Weź oddech i usiądź. Będziesz podejmować decyzje, przy których pośpiech kosztuje więcej niż zwłoka.
Krok 1: Potwierdź, że to naprawdę hack (3-5 minut)
Czasami to wygląda jak hack, ale to jest bug, problem z hostingiem, lub coś zupełnie innego.
Co robić:
- Otwórz stronę w incognito/prywatnym oknie przeglądarki (żeby uniknąć pamięci podręcznej)
- Sprawdź czy problem widać ze wszystkich urządzeń (komputer, telefon)
- Sprawdź logi dostępu do hostingu (jeśli masz dostęp do panelu)
- Poproś kogoś innego żeby sprawdził stronę u siebie (może to lokalny problem, może być problem z Twoim komputerem, siecią, przeglądarką)
Znaki że to rzeczywiście hack:
- Strona pokazuje obcy content (reklamy, polityczne treści, crypto scam, cokolwiek co nie jest twoje)
- Strona jest całkowicie zmieniona
- Google alertuje Cię że strona zawiera malware (sprawdź: Google Search Console)
- Wiadomości od klientów „Co się stało ze stroną?”
- Dziwne e-maile od hostingu czy systemów backupu/monitoringu
Jeśli potwierdzisz że to hack — idziesz do kroku 2.
Krok 2: Zamknij dostęp — teraz (5 minut)
Każda minuta, przez którą zainfekowana strona jest dostępna, to ryzyko dla Twoich odwiedzających — i sygnał dla Google, że witryna jest niebezpieczna. To drugie odrabia się potem tygodniami.
Zrób to:
- Wyłącz dostęp do bazy danych lub strony całkowicie. Jeśli masz dostęp do panelu hostingu (cPanel, Plesk), wyłącz stronę. Jeśli to WordPress, zmień plik .htaccess i przekieruj całą stronę na 403 Forbidden. Jeśli nie umiesz — idź do kroku 3.
- Jeśli nie potrafisz wyłączyć całej strony — wyłącz co najmniej admin panel (/wp-admin dla WordPressa). Dodaj w .htaccess regułę blokującą dostęp do katalogu wp-admin dla wszystkich (Order allow,deny / Deny from all).
- Jeśli to możliwe, zmień wszystkie hasła. Hasło do panelu hostingu, hasło do FTP, hasło do WordPressa, hasło do e-maila powiązanego ze stroną. Wszystko.
Dlaczego akurat teraz? Bo osoba, która weszła na stronę, najprawdopodobniej ma jedno z Twoich haseł. Dopóki je ma, może wracać — i może zostawić sobie furtkę, która przetrwa nawet usunięcie samego złośliwego kodu.
Krok 3: Skontaktuj się z hostingiem (10-15 minut)
Telefonuj. Nie email. Telefon. Natychmiast.
Powiedz:
- Że Twoja strona była zhakowana
- Że chcesz tymczasowo wyłączyć stronę lub całe konto (żeby hacker nie robił dalej)
- Czy mogą sprawdzić logi dostępu (żeby znaleźć jak się dostał)
- Czy mogą uruchomić backup sprzed hacku
Hosting — jeśli jest porządny — ma backupy. To twoja poduszka bezpieczeństwa. Jeśli masz backup sprzed 24 godzin, możesz przywrócić stronę do stanu sprzed ataku.
Pytania które warto zadać hostingowi:
- Kiedy ostatni backup był uruchamiany?
- Czy mogą zidentyfikować z którego IP/kraju pochodzi atak?
- Czy strona ma złośliwe oprogramowanie?
- Czy mogę wyłączyć stronę tymczasowo?
Dobry hosting będzie współpracował. Słaby powie „nie widzimy problemu” — jeśli tak się stanie, zapisz to sobie na później i szukaj innego dostawcy. Teraz skup się na ratowaniu strony.
Krok 4: Zrób pełny backup BIEŻĄCY (jeśli możesz) (15-30 minut)
Paradoksalnie — chociaż strona jest zhakowana, chcesz mieć backup tego stanu. Dlaczego? Żeby developer (ja, albo ktoś inny) mógł ją zbadać i znaleźć dokładnie co haker zrobił. To pomaga w przyszłości.
Jak zrobić backup zhakowanej strony:
- SSH do serwera (jeśli masz dostęp) i użyj komendy scp do skopiowania plików
- Albo zaloguj się przez FTP i pobierz wszystkie pliki na dysk
- Pobierz bazę danych (phpMyAdmin → Eksport)
Zachowaj tę kopię na osobnym dysku i nie nadpisuj jej. To jest materiał dowodowy — na jego podstawie da się ustalić, którędy ktoś wszedł, a bez tego naprawiasz objaw zamiast przyczyny.
Krok 5: Przywróć z backupu LUB oczyść (1-8 godzin)
Tutaj masz dwie ścieżki.
Ścieżka A: Przywróć z czystego backupu (preferowana)
Jeśli hosting ma backup sprzed 24-48 godzin — powiedz im żeby go przywrócili. To jest najprostszy sposób.
Zysk: strona wraca do normalności szybko.
Ryzyko: kopia jest starsza niż Twoje ostatnie zmiany. Jeśli wczoraj poprawiałeś cennik, a kopia jest sprzed dwóch dni, te poprawki przepadają. To jest decyzja biznesowa, nie techniczna: co boli bardziej — utrata jednego dnia zmian czy kolejne godziny z przejętą stroną.
Ścieżka B: Ręczne czyszczenie (czasochłonne, ale precyzyjne)
Jeśli nie masz backupu, lub wolisz nie przywracać — musisz ręcznie znaleźć i usunąć malware. To jest praca dla developera.
Znaki gdzie szukać:
- Ostatnio modyfikowane pliki (sprawdź timestamp w FTP)
- Pliki PHP w miejscach gdzie nie powinno być PHP (media folder, itd)
- Dziwne pliki (shell.php, backdoor.php, x7x.php) — na pewno to hack
- W kodzie — eval(), base64_decode(), assert(); to typowe sposoby ukrywania podrzuconych skryptów
- Theme files (w WordPressie) — haker je modyfikuje
Jeśli nie czujesz się w tym pewnie — zadzwoń do programisty. Czyszczenie ręczne jest precyzyjną robotą: usunięcie o jeden plik za dużo potrafi położyć stronę skuteczniej niż samo włamanie.
W WordPressie — specjalne kroki:
- Zainstaluj wtyczkę skanującą, na przykład Wordfence albo Sucuri
- Zmień wszystkie hasła (WordPress admin, bazy danych, FTP)
- Usuń nieużywane wtyczki i szablony — nieaktywne też, bo kod nadal leży na serwerze
- Zaktualizuj WordPressa do najnowszej wersji
- Zaktualizuj wszystko, co zostało
Krok 6: Zmień WSZYSTKIE hasła (10 minut)
To jest krok, który wszyscy pomijają, bo strona już wygląda dobrze. Nie pomijaj go — bez tego cała reszta pracy może pójść na marne.
Co zmienić:
- Hasło do WordPress admin
- Hasło do bazy danych
- Hasło do FTP/SFTP
- Hasło do e-mail powiązanego ze stroną
- Hasło do panelu hostingu
- Hasło do domeny (whois contact email)
Hacker prawdopodobnie ma przynajmniej jedno z tych haseł. Nowe hasła powinny być:
- Minimum 16 znaków
- Mix dużych, małych, liczb, symboli
- Bez oczywistych wzorców i bez nazwy firmy w treści
- Zapisane w menedżerze haseł, nie w notatniku
Krok 7: Powiadom Google (24 godziny)
Kiedy strona jest już czysta i znów działa:
- Google Search Console → Bezpieczeństwo i ręczne działania → Problemy dotyczące bezpieczeństwa. Zaznacz, że problem został usunięty, i poproś o ponowne sprawdzenie.
- Google Safe Browsing → Report form. Powiedz że strona nie zawiera już malware.
- Jeśli ucierpieli klienci — na przykład przez Twoją stronę rozsyłano phishing albo wyciekły dane z formularzy — powiadom ich. Przy danych osobowych sprawdź też, czy nie masz obowiązku zgłoszenia do UODO w ciągu 72 godzin.
Google potrzebuje czasu aby zaufać że strona jest czysta. Czasami kilka dni. Czasami tydzień. Bądź cierpliwy.
Krok 8: Dowiedz się jak to się stało (następny dzień)
Po tym jak strona jest przywrócona, czas na analizę co się stało.
Pytania które sobie zadać:
- Jaki plugin/theme był podatny?
- Czy były stare wersje programów?
- Czy hasła były słabe?
- Czy backup był regularnie robiony?
- Czy były regularnie security updates?
Jeśli to WordPress — sprawdź które pluginy były ostatnio aktualizowane. Hakerzy atakują stare pluginy które nie są patchowane.
Krok 9: Zabezpiecz się na przyszłość (teraz, jeśli możesz)
Teraz kiedy strona jest bezpieczna — nie chcesz żeby to się stało znowu.
Konieczne minimum:
- Security pluginy (WordPress): Wordfence/Sucuri/iThemes Security
- Regularne kopie zapasowe — codziennie, w ostateczności raz w tygodniu. Przechowywane poza serwerem strony: dysk w chmurze, S3, cokolwiek osobnego.
- Regularne aktualizacje — wtyczki, szablony, sam system. Najlepiej w stałym rytmie, a nie wtedy, gdy się o nich przypomni.
- Silne hasła — dla każdego konta. Password manager.
- Two-factor authentication — dla WordPressa, dla FTP, dla hostingu.
Jeśli prowadzisz coś ważniejszego (e-commerce, dane klientów):
- Web Application Firewall (WAF) — Cloudflare, Sucuri, Wordfence
- Audyty bezpieczeństwa (raz na rok)
- SSL certificate (https) — powinno być zawsze
- Aktualizacje zależności, jeśli strona jest pisana na zamówienie
Moje rady z doświadczenia
Wszyscy którzy prowadzą stronę powinni być przygotowani na hack. To nie jeśli, tylko kiedy.
Zatem:
- Miej regularny backup. Off-site. Nie na tym samym serwerze co strona. Jeśli serwer się spali, backup się spali razem.
- Aktualizuj wszystko. Pluginy, theme'y, system operacyjny, biblioteki. Nie ignoruj update'ów bo „strona się zmieni”. Update'y zawierają security patches.
- Używaj mocnych haseł. I nie powtarzaj tego samego hasła w kilku miejscach.
- Jeśli Twoja strona ma kontakt z finansami (płatności, dane karty) — weź bezpieczeństwo poważnie. Miej WAF. Miej regularne audyty.
- Jeśli korzystasz z WordPressa — jego popularność działa w obie strony. Jest częściej atakowany, ale też szybciej łatany i lepiej opisany. Korzystaj z tego drugiego.
Potrzebujesz pomocy teraz
Jeśli czytasz to w trakcie awarii — tutaj opisuję pilną pomoc. Pracuję z firmami z Pleszewa, Kalisza, Ostrowa Wielkopolskiego i Jarocina, a zdalnie z klientami z całej Polski. Napisz albo zadzwoń, pomogę przywrócić stronę do działania.
Włamanie to nie koniec świata. To incydent, który da się naprawić i z którego zwykle wynika jeden porządny wniosek: strona potrzebowała opieki wcześniej.
Jeśli czytasz to na spokojnie i Twoja strona działa — to jest najlepszy moment, żeby sprawdzić kopie zapasowe i aktualizacje. Przy okazji warto przejrzeć najczęstsze błędy na stronach firmowych; brak monitoringu jest na tej liście nie bez powodu.