Strona WordPress przekierowuje na reklamy — przyczyny i naprawa
Dlaczego strona przekierowuje na reklamy?
Przekierowania na reklamy to jeden z najczęstszych objawów włamania do strony WordPress. Hakerzy wstrzykują złośliwy kod, który zarabia na tzw. malvertisingu — przekierowuje ruch z Twojej strony do sieci reklamowych, za które ktoś płaci. Twoi odwiedzający są towarzyzmem w tym procederze.
Co charakterystyczne — właściciel strony często o tym nie wie, bo przekierowanie jest warunkowe: działa tylko dla użytkowników mobilnych, tylko dla ruchu z Google lub tylko w określonych godzinach. Kiedy sam wchodzisz na stronę z panelu admina — wszystko wygląda normalnie.
Gdzie ukrywa się złośliwy kod przekierowań?
Kod odpowiedzialny za przekierowania może znajdować się w wielu miejscach jednocześnie:
Plik .htaccess
To najczęstsze miejsce. Złośliwy wpis wygląda np. tak:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (android|mobile) [NC]
RewriteRule .* https://zlosliwa-domena.com/ [R=302,L]
Sprawdź główny .htaccess w katalogu public_html oraz .htaccess w katalogach wp-content, uploads i w folderze motywu.
Pliki PHP motywu (header.php, footer.php, functions.php)
W stopce lub nagłówku motywu hakerzy wstrzykują JavaScript wykonujący przekierowanie:
<script>if(/Android|iPhone/i.test(navigator.userAgent)){window.location="https://spam.example";}</script>
Baza danych — tabela wp_options
Opcja siteurl lub home może być zmieniona na obcą domenę. Sprawdź w phpMyAdmin:
SELECT option_name, option_value FROM wp_options
WHERE option_name IN ('siteurl','home','admin_email');
Wtyczki z tylnym wejściem (backdoor)
Fałszywe lub zainfekowane wtyczki mogą zawierać własne pliki PHP, które ładują się niezależnie od reszty kodu. Sprawdź katalog wp-content/plugins pod kątem folderów, których nie rozpoznajesz.
Jak naprawić przekierowania krok po kroku
- Zresetuj plik .htaccess — usuń cały plik i wygeneruj nowy w ustawieniach WordPress (Ustawienia → Bezpośrednie odnośniki → Zapisz zmiany).
- Sprawdź i przywróć pliki motywu — porównaj pliki z oryginalną wersją motywu ze strony producenta lub wordpress.org.
- Przeskanuj bazę danych — uruchom zapytania szukające
script, base64 i obcych domen w polach option_value.
- Dezaktywuj wszystkie wtyczki — jeśli przekierowania znikają po dezaktywacji wtyczek, problem leży w jednej z nich. Aktywuj je po kolei żeby znaleźć winowajcę.
- Zmień hasła — FTP, baza danych, panel admina, hosting.
Dlaczego przekierowania wracają?
Wielu właścicieli stron usuwa widoczny kod i problem znika na kilka dni — po czym wraca. Powód jest prosty: hakerzy zwykle zostawiają więcej niż jeden backdoor. Usuwasz jeden punkt wejścia, ale w tym czasie inny plik na serwerze przywraca złośliwy kod.
Dlatego skuteczne leczenie przekierowań wymaga pełnego audytu wszystkich plików na serwerze — nie tylko tych widocznych w FTP, ale też plików ukrytych w katalogach tmp, cache czy sessions.
Jeśli problem powraca — zgłoś nam stronę do analizy. Sprawdzamy każdy plik, każdy wpis w bazie danych i każdą linię logów serwera.