← Svi članci

Hakirana WordPress stranica: što napraviti (i zašto blokada ostaje i nakon čišćenja)

Čišćenje WordPress stranice u tijeku

Javi ti se kupac da mu se na tvoj web ne može ući jer piše „stranica nije sigurna”. Ili ti hosting pošalje mail o zlonamjernom kodu. Ili na Googleu ispod tvog imena odjednom stoje naslovi na japanskom. Hakirana WordPress stranica nije smak svijeta, ali je posao koji se mora odraditi redom: prvo zaustaviti štetu, onda očistiti, pa tek onda skinuti blokade. Ako preskočiš korak, za mjesec dana si na istom.

Ovo je redoslijed kojim radim kad mi netko pošalje hakiranu stranicu. Samo u listopadu 2026. bila su to tri weba. Kod dva je čišćenje bilo samo pola posla, a drugu polovicu u većini vodiča ne nađeš.

Kako znaš da ti je stranica hakirana

  • „Stranica nije sigurna” kod dijela posjetitelja: često samo na jednoj mreži (npr. korisnici A1 interneta), dok je s mobitela na drugoj mreži sve normalno.
  • Google ili preglednik upozorava na crvenom ekranu da stranica može biti opasna.
  • Preusmjeravanje: posjetitelj s mobitela završi na kockanju, lažnoj nagradnoj igri ili sličnom.
  • Čudni rezultati na Googleu: stranice koje nisi napravio, spam ključne riječi, strani jezik.
  • Novi administrator u WordPressu kojeg ne poznaješ.
  • Mail od hostinga da je skener našao i uklonio zlonamjerni kod.

Zadnja točka zvuči kao da je problem riješen. Najčešće nije, i o tome niže.

Prvih sat vremena: što napraviti odmah

  1. Ne briši ništa naslijepo. Brisanje „sumnjivih” datoteka bez plana zna srušiti stranicu, a uzrok ostaje.
  2. Napravi kopiju trenutnog stanja (datoteke + baza). Da, i zaraženog. Treba ti da vidiš što je i kada promijenjeno.
  3. Promijeni sve lozinke: hosting (cPanel), FTP, bazu podataka, sve WordPress administratore i mail. Pogotovo ako je netko prije imao pristup, npr. bivši developer ili agencija.
  4. Pregledaj korisnike u WordPressu. Svakog administratora kojeg ne prepoznaješ makni.
  5. Javi hostingu. Oni vide logove i skener koje ti ne vidiš, i mogu ti reći kad je napad krenuo.

Čišćenje WordPressa, korak po korak

Cilj nije samo maknuti zlonamjerni kod nego i naći kako je ušao. Bez toga se vraća.

1. Jezgra WordPressa

Datoteke WordPressa usporedi s originalom (WP-CLI naredba wp core verify-checksums to radi u sekundi). Sve što se ne poklapa ili ne bi trebalo postojati je sumnjivo. Jezgru je najsigurnije ponovno instalirati iz službenog izvora.

2. Dodaci i teme

Ovdje je ulaz u većini slučajeva koje vidim: dodatak koji godinama nije ažuriran, stara verzija slidera, upravitelj datoteka u adminu ili „besplatna” premium tema skinuta s pogrešnog mjesta. Što radim:

  • brišem sve dodatke i teme koji se ne koriste (i neaktivni dodatak je otvorena vrata),
  • one koji ostaju instaliram ponovno iz službenog izvora, ne kopiram stare datoteke natrag,
  • provjeravam je li aktivna tema uopće još održavana. Ako nije, to treba reći klijentu otvoreno.

3. Mjesta gdje se kod skriva

  • wp-content/uploads: tu bi trebale biti slike i dokumenti. PHP datoteka u uploadsu je gotovo uvijek uljez.
  • wp-content/mu-plugins: „obavezni” dodaci koji se ne vide u običnom popisu dodataka.
  • wp-config.php, .htaccess i .user.ini: jedna dodana linija ovdje može učitavati zlonamjerni kod na svakoj stranici.
  • functions.php teme: omiljeno mjesto za skriptu koja nakon brisanja ponovno „ispusti” zarazu.

4. Baza podataka

Zlonamjerni kod ne živi samo u datotekama. Provjeri ima li ubačenih skripti u objavama, widgetima i postavkama, nepoznatih administratora i zakazanih zadataka (cron) koje nisi postavio. Na kraju promijeni sigurnosne ključeve (salts) u wp-config.php. Time se odjavljuju sve postojeće prijave, pa i napadačeva.

Zašto backup i hosting skener nisu dovoljni

Vraćanje backupa vrati stranicu u stanje prije zaraze, ali rupa kroz koju je napadač ušao ostaje otvorena. Uz to, backup od prije tjedan dana može već sadržavati skriveni ulaz koji je napadač ostavio ranije.

Skener na hostingu (npr. Imunify360) je odličan i treba ga imati. Ali on uklanja ono što prepozna, a ne popravlja uzrok. Na jednom webu skener je uredno očistio zarazu iz datoteke teme, ali tema se nije ažurirala godinama i WordPress je bio nekoliko velikih verzija iza. Zaraza je maknuta, ali vrata su ostala otvorena.

Očistio si, a A1 i dalje piše „stranica nije sigurna”. Zašto?

Ovo je dio koji vlasnike najviše zbuni. Web je čist, skener ne nalazi ništa, a korisnici A1 interneta i dalje dobivaju blok stranicu A1 Net Protect.

Razlog: takve zaštite ne skeniraju tvoj web same. Oslanjaju se na crne liste sigurnosnih tvrtki (Bitdefender, Webroot, Forcepoint i drugih). A1 podrška mi je to i potvrdila: dok god te barem jedna od tih tvrtki vodi kao opasnog, blok ostaje. A te liste se ne osvježavaju same od sebe kad očistiš web.

Kako se to rješava:

  1. Provjeri adresu na VirusTotalu (virustotal.com, kartica URL). Vidjet ćeš točno koje te tvrtke označavaju i kako.
  2. Klikni „Reanalyze”. Dio njih nakon svježe provjere sam makne oznaku.
  3. Za svaku tvrtku koja te i dalje drži na listi pošalji zahtjev za ponovnu provjeru (false positive / recategorization). Svaka ima svoj obrazac ili adresu. Popis je na VirusTotalu, a kratko objasni što je očišćeno.
  4. U Google Search Consoleu otvori „Sigurnosni problemi” i zatraži pregled, ako ti je Google prijavio problem.
  5. Kad su liste čiste, javi se A1 poslovnoj podršci s brojem prijave i zamoli ponovnu provjeru.

Računaj na nekoliko dana, ne sat vremena. U mom zadnjem slučaju neke tvrtke su odgovorile isti dan, neke za 24 sata, a jedna je odbila mail poslan s Gmail adrese pa je zahtjev morao ići s poslovne domene. Strpljenje i popis od koga još čekaš odgovor.

Kako spriječiti da se ponovi

  • Redovna ažuriranja WordPressa, dodataka i teme, ali s backupom prije, ne naslijepo.
  • Manje dodataka: svaki koji ne koristiš, briši.
  • Bez „besplatnih” premium tema i dodataka s neslužbenih stranica.
  • Dvofaktorska prijava za administratore i jake, jedinstvene lozinke.
  • Backup izvan hostinga: ako hosting padne ili je zaražen, backup na istom mjestu ne pomaže.
  • Podržana verzija PHP-a na hostingu.
  • Netko tko gleda: redovno održavanje znači da se problem vidi kad je mali, a ne kad ti kupac javi da ne može na stranicu. Što održavanje uključuje i koliko košta, piše u tekstu koliko košta web stranica.

Česta pitanja

Koliko traje čišćenje hakirane WordPress stranice?

Samo čišćenje obično stane u jedan do dva dana. Skidanje s crnih lista traje dulje jer ovisi o tome koliko brzo odgovaraju sigurnosne tvrtke. Realno, od nekoliko dana do tjedan-dva.

Hoću li izgubiti pozicije na Googleu?

Ako se reagira brzo, uglavnom ne trajno. Ako je napadač ubacio spam stranice, treba ih ukloniti i pratiti Search Console dok Google ne osvježi indeks. Najveća šteta nastaje kad stranica tjednima ostane zaražena.

Mogu li to očistiti sam?

Prvi sat (lozinke, korisnici, kopija, hosting) možeš i trebaš sam. Za samo čišćenje trebaš znati čitati PHP i bazu podataka. Pola očišćena stranica gora je od neočišćene, jer misliš da je problem riješen.

Je li bolje očistiti staru stranicu ili napraviti novu?

Ovisi o stanju. Ako je WordPress nekoliko velikih verzija iza, a tema napuštena, svako krpanje je privremeno i nova stranica često ispadne jeftinija od dva-tri čišćenja godišnje. Ako je stranica uredna i samo je jedan dodatak propustio, čišćenje i održavanje su dovoljni. Više o izboru teme piše u tekstu custom tema ili gotova tema.

Treba ti pomoć?

Ako ti je web hakiran ili ga A1 blokira kao nesiguran, javi se. Pogledam stanje, kažem ti iskreno isplati li se čistiti ili raditi novo, odradim čišćenje i skidanje s crnih lista, a ako želiš, preuzmem i redovno održavanje da se ne ponovi. Pošalji mi adresu stranice i kratak opis.

Pokreni projekt