Sajt me preusmerava na drugi sajt: uzrok i rešenje
Poziv obično zvuči isto. Javi se klijent, prijatelj ili neko ko je pokušao da otvori vašu stranicu i kaže rečenicu koju niste želeli da čujete: „Kliknuo sam na tvoj sajt, a otvorila mi se neka kladionica." Vi odmah otvorite svoj sajt da proverite, i sve izgleda savršeno normalno. Naslovna se učitava, meni radi, kontakt forma stoji na mestu. Ništa neobično.
Ukratko: ako drugi vide redirekciju a vi ne, proverite kao stranac (incognito/drugi uređaj), nađite gde je ubačen kod, očistite i tek onda tražite pregled u Search Console.
Ako vam je neko rekao da ga vaš sajt preusmerava na tuđe stranice, a vi to ne možete da ponovite, niste ni prvi ni poslednji. To je jedan od najčešćih scenarija sa kojima nam se ljudi javljaju, i skoro uvek izaziva istu zbunjenost. U ovom tekstu objašnjavamo zašto se redirekcija dešava samo nekim posetiocima, kako da je sami izazovete da biste je videli, gde se fizički krije u WordPress instalaciji i kojim redom da rešavate problem.
Zašto redirekcija ne radi kad vi otvorite sajt
Ovo je prva stvar koju treba razumeti, jer objašnjava skoro sve ostalo. Kad neko ubaci maliciozni kod za preusmeravanje, njemu nije u interesu da ga vi primetite. Vi ste vlasnik. Vi ćete pozvati nekoga, platiti čišćenje i zatvoriti rupu kroz koju je ušao. Zato je kod skoro uvek napisan tako da radi selektivno.
Najčešće provere koje maliciozna skripta radi pre nego što odluči da li će vas preusmeriti izgledaju ovako.
Odakle je posetilac došao
Skripta gleda odakle je posetilac stigao na stranicu. Ako je došao direktnim kucanjem adrese u pretraživač, ništa se ne dešava. Ako je došao klikom sa Google rezultata, redirekcija se aktivira. Logika je jednostavna: posetilac iz pretrage je stranac koji verovatno neće znati kome da se javi, dok neko ko direktno kuca vašu adresu često jeste vlasnik ili neko blizak sajtu.
Sa kog uređaja dolazi
Velik deo ovakvih infekcija cilja isključivo mobilne korisnike. Razlog je praktičan. Mobilni korisnici ređe primete detalje, ređe gledaju adresu u pretraživaču, i teže im je da naprave snimak ekrana i pošalju ga nekome. Vi svoj sajt gotovo sigurno proveravate sa računara, i zato ne vidite ništa.

Da li je posetilac ulogovan
Ako ste ulogovani u WordPress administraciju, pretraživač nosi kolačić koji to potvrđuje. Maliciozni kod često prvo proveri taj kolačić i, ako postoji, ne radi ništa. Vi kao administrator gotovo nikad ne pregledate sajt izlogovani, pa vam se redirekcija nikad ne prikaže.
Da li je posetilac već bio tu
Neke skripte preusmere svakog posetioca samo jednom, pa upišu kolačić da se to ne ponovi. Efekat je da čovek koji vam prijavi problem, kad pokuša da ga demonstrira, više ne može da ga izazove. To dodatno zbunjuje i vas i njega, i ne retko dovede do zaključka da je problem prošao sam od sebe. Nije prošao, samo se sakrio.
Kako da sami izazovete redirekciju i vidite je svojim očima
Pre nego što bilo šta dirate u fajlovima, vredi da problem potvrdite. Evo redosleda koji u praksi najčešće uspe.
Prvo otvorite anoniman prozor pretraživača. U Chrome-u je to Incognito, u Firefox-u Private Window. Time ste se rešili i kolačića prijave i svih ranije upisanih kolačića koje je skripta možda ostavila.
Zatim nemojte kucati adresu sajta direktno. Otvorite Google, pretražite ime vašeg sajta ili neku frazu sa njega, i kliknite na rezultat. Tako pretraživač šalje informaciju da dolazite iz pretrage, što je uslov koji većina ovih skripti proverava.

Ako se i dalje ništa ne dešava, ponovite isti postupak sa telefona, opet u anonimnom prozoru i opet preko pretrage. Ovaj korak vrlo često pokaže ono što računar ne pokazuje.
Ako ni to ne pomogne, zamolite nekoga ko nikad nije posećivao vaš sajt da proba isto. Njegov pretraživač nema nikakvu istoriju vezanu za vas i najbliži je stanju običnog, nasumičnog posetioca.
Ako u nekom od ovih pokušaja vidite preusmeravanje, snimite ekran ili napravite video. To je dokaz koji vam kasnije pomaže i pri čišćenju i pri komunikaciji sa hostingom.
Gde se maliciozni kod obično krije
Kad se potvrdi da preusmeravanje postoji, sledeće pitanje je gde ga tražiti. Postoji nekoliko mesta koja se ponavljaju iz slučaja u slučaj.
JavaScript ubačen u temu
Najčešći slučaj. Kod se dodaje u fajl koji se učitava na svakoj stranici, obično u header.php, footer.php ili u glavni JavaScript fajl aktivne teme. Retko izgleda kao čitljiv kod. Češće je to jedan dugačak, nerazumljiv niz slova i brojeva koji se dekodira tek u trenutku izvršavanja. Ako otvorite takav fajl i vidite red koji se proteže preko celog ekrana bez ijedne prepoznatljive reči, to je gotovo sigurno on.

Pravila u .htaccess fajlu
Na Apache serverima, fajl .htaccess u korenu sajta može da preusmeri saobraćaj pre nego što se WordPress uopšte pokrene. Napadači vole ovo mesto jer se pravila često dodaju na sam kraj fajla, iza mnogo praznih redova, pa ih neko ko površno pogleda fajl lako promaši. Obratite pažnju i na to da .htaccess počinje tačkom, što znači da je na mnogim fajl menadžerima skriven dok ne uključite prikaz skrivenih fajlova.
Zapisi u bazi podataka
Ovo je mesto koje najviše ljudi previdi, jer se ne nalazi ni u jednom fajlu. Kod može biti upisan u tabelu wp_options, u polja koja WordPress učitava na svakom zahtevu. Može biti i u sadržaju samih stranica, u podešavanjima teme, ili u meta poljima koje koriste page builder dodaci poput Elementora. Ako čistite samo fajlove, a ne pogledate bazu, redirekcija se vraća čim se stranica ponovo učita.
Podmetnut dodatak ili mu-plugin
Postoji folder wp-content/mu-plugins koji WordPress učitava automatski, pre svih ostalih dodataka, i čiji se sadržaj ne prikazuje u standardnoj listi dodataka na isti način. Mnogi vlasnici sajtova ni ne znaju da taj folder postoji. Zato je omiljeno mesto za kod koji treba da se izvršava neprimetno.
Izmena na nivou DNS zapisa ili domena
Ovo je najređi slučaj, ali vredi ga pomenuti jer je i najozbiljniji. Ako je neko dobio pristup vašem nalogu kod registrara domena, preusmeravanje se može desiti pre nego što zahtev uopšte stigne do vašeg servera. U tom slučaju čišćenje sajta neće promeniti ništa, jer sam sajt nije ni dirnut. Ako ste sve ostalo proverili i ništa ne nalazite, proverite gde vaš domen zapravo pokazuje.
Kako je maliciozni kod uopšte dospeo tu
Pitanje uzroka zašto se dešava preusmeravanje je važnije nego što deluje. Ako uklonite kod a ne zatvorite ulaz, isti problem se vraća, često u roku od nedelju ili dve.
Najveći deo napada na WordPress sajtove nije ciljan. Automatizovane skripte pretražuju internet i traže sajtove sa poznatim slabostima. Kad nađu jednu, iskoriste je i idu dalje. Ulazna tačka je gotovo uvek jedna od sledećih.
- Zastareo dodatak sa objavljenom ranjivošću. Ovo je ubedljivo najčešći slučaj. Kad se ranjivost javno objavi, napadači je koriste u roku od nekoliko dana, a mnogi sajtovi ostanu neažurirani mesecima.
- Tema preuzeta sa nezvaničnog izvora. Piratske verzije premium tema često dolaze sa kodom koji je neko namerno ubacio pre nego što ih je podelio besplatno.
- Slaba ili ponovljena administratorska lozinka. Napad grubom silom na stranicu za prijavu i dalje uspeva mnogo češće nego što bi trebalo.
- Kompromitovan pristup hostingu ili FTP nalogu, najčešće preko lozinke koja je procurila na nekom drugom servisu.
- Drugi sajt na istom hosting nalogu. Ako držite više sajtova na jednom paketu, infekcija sa jednog često pređe na ostale.
Zato se često desi da se redirekcija aktivira tek nedeljama posle prvog ulaza, kad vlasnik više ne povezuje uzrok i posledicu.

Redosled koji ima smisla kad rešavate problem
Prirodna reakcija je da se odmah krene u brisanje svega sumnjivog. To skoro uvek pogorša situaciju, jer se izgubi trag odakle je problem došao, a ponekad i deo funkcionalnog sajta. Bolje ide ovako.
Prvo napravite kopiju
Pre bilo kakve izmene, napravite potpunu kopiju fajlova i baze. Čak i ako je sajt zaražen. Ta kopija vam je jedina zaštita ako nešto pođe naopako tokom čišćenja, i jedini izvor podataka ako kasnije bude trebalo da rekonstruišete šta se desilo.

Zatim utvrdite obim
Proverite koliko je zapravo zahvaćeno. Da li se preusmeravanje dešava samo sa naslovne, ili sa svih stranica. Da li se dešava svim posetiocima ili samo delu. Da li je i drugi sajt na istom nalogu pogođen. Ova slika vam govori da li tražite jedan ubačen red koda ili nešto što je ušlo dublje.
Pa uklonite kod i zatvorite ulaz
Uklanjanje malicioznog koda i zatvaranje rupe kroz koju je ušao idu zajedno, u istom potezu. Ako uradite samo prvo, kupili ste sebi nekoliko dana. Zatvaranje ulaza znači ažuriranje svega što je zastarelo, uklanjanje dodataka i tema koje ne koristite, i promenu svih lozinki koje su mogle biti kompromitovane.
Na kraju proverite šta je ostalo za sobom
Napadači po pravilu ostavljaju rezervni pristup. To može biti dodatni administratorski nalog sa nevinim imenom, fajl u wp-content/uploads folderu koji tamo nema šta da traži, ili zakazan zadatak koji ponovo postavlja kod nekoliko dana kasnije. Ako to ne proverite, redirekcija se vraća, a vi nemate objašnjenje zašto.
Pet grešaka koje se najčešće prave u panici
Kad vam neko javi problem „sajt me preusmerava” i kaže da mu se otvara tuđa stranica, prva reakcija retko bude i najbolja. Evo šta u praksi najčešće odmogne.
Brisanje svega što deluje sumnjivo
Ako obrišete fajlove pre nego što ste videli šta u njima piše, izgubili ste jedini trag koji vam govori kako je napadač ušao. Bez toga rešavate posledicu i čekate da se ponovi. Uvek prvo pogledajte, pa tek onda uklanjajte.
Ponovna instalacija WordPress-a preko postojeće
Zvuči logično, ali ne rešava ništa u većini slučajeva. Ponovna instalacija menja fajlove jezgra, a maliciozni kod se skoro uvek nalazi u temi, dodacima, uploads folderu ili bazi. To su tačno mesta koja ponovna instalacija ne dira.
Vraćanje sajta iz starog bekapa bez provere
Ovo ume da pomogne, ali samo ako znate kada je infekcija počela. Ako vratite kopiju od pre nedelju dana, a kod je ubačen pre mesec dana, vratili ste zaražen sajt i još izgubili sav sadržaj iz međuvremena. Pre vraćanja bekapa treba utvrditi vremensku liniju, ne obrnuto.
Instaliranje pet bezbednosnih dodataka odjednom
Više dodataka koji rade isti posao ne znači veću zaštitu. Znači sporiji sajt, moguće sukobe u radu, i pet mesta na kojima treba pratiti podešavanja. Osim toga, nijedan bezbednosni dodatak instaliran posle upada neće ukloniti kod koji je već tu.
Čekanje da problem prođe sam
Ne prolazi. Svaki dan dok redirekcija traje znači više posetilaca koji su otišli sa lošim utiskom, veću šansu da Google to primeti i označi sajt, i više vremena napadaču da postavi dodatne rezervne ulaze.
Šta uraditi sa Google upozorenjem ako se pojavilo
Ako je redirekcija trajala dovoljno dugo, postoji šansa da je Google to primetio i označio vaš sajt u rezultatima pretrage. Važno je znati da se to upozorenje ne uklanja samo od sebe posle čišćenja.

Postupak je da se sajt prvo stvarno očisti, zatim da se u Google Search Console proveri koja je tačno kategorija problema prijavljena, pa da se podnese zahtev za ponovnu proveru. Google zatim ponovo skenira sajt, ovaj put pažljivije. Ako pronađe i ostatak problema, zahtev se odbija i ceo proces počinje ispočetka, pa se isplati biti temeljan pre podnošenja nego brz.
Kako sprečiti da se vrati
Sajt koji je jednom bio zaražen ima veće šanse da bude ponovo napadnut. Delom zato što je već na listama automatizovanih skripti, delom zato što originalni uzrok često ostane nerešen.
Tri stvari prave najveću razliku, i nijedna nije komplikovana.
Redovno ažuriranje jezgra, teme i svih dodataka zatvara najveći deo ulaznih tačaka pre nego što ih neko iskoristi. Većina napada cilja ranjivosti koje su odavno zakrpljene, samo na sajtovima gde niko nije primenio zakrpu.
Jake i jedinstvene lozinke za sve administratorske naloge, uz dvofaktorsku prijavu gde je moguće, uklanjaju drugi najčešći ulaz.
Redovan automatski nadzor hvata izmene koje niko nije napravio namerno. Ovo je važno baš zbog svega što je opisano gore: ako se maliciozni kod trudi da bude nevidljiv vlasniku sajta, jedina pouzdana odbrana je nešto što gleda umesto vas, po rasporedu, a ne kad se setite.
Šta možete uraditi odmah, besplatno
Ako ste stigli dovde i sumnjate da imate problem, prvi korak ne mora ništa da košta. Besplatna brza analiza pregleda javno dostupan sadržaj vašeg sajta i traži poznate obrasce preusmeravanja, skrivene skripte i sumnjive elemente. Provera ne zahteva nalog, ne traži instalaciju i obično traje ispod minuta.
Vredi znati i njeno ograničenje, jer o tome nema smisla ćutati. Ta provera vidi samo ono što je javno dostupno preko interneta. Ako je kod sakriven u fajlu na serveru ili u bazi podataka, ona ga neće naći. Čist rezultat je dobar znak, ali nije dokaz da je sve u redu. Za to je potreban pregled samih fajlova i baze na sajtu.
Ako analiza pokaže nešto sumnjivo, ili ako već imate potvrđen problem i ne želite da se time bavite sami, javite nam se. Pošaljite adresu sajta i kratak opis šta se dešava, i reći ćemo vam šta ima smisla kao sledeći korak.