Na kratko: Če spletna stran preusmerja na tuje strani, je vzrok v eni od šestih plasti: DNS, CDN ali proxy, konfiguracija spletnega strežnika, koda PHP, zbirka podatkov ali vključeni skripti. Ker številne preusmeritve delujejo samo pod pogoji, ciljno testirajte z različnimi oznakami in izvornimi stranmi. Najprej zaščitite obiskovalce, zavarujte sledi in po odstranitvi zaprite vstopno točko.
Ko stranke pristanejo na straneh z nagradnimi igrami
Sporočilo praviloma pride od zunaj. Stranka napiše, da je ob obisku vaše strani pristala na nagradni igri ali dvomljivi spletni trgovini. Preverite na lastnem računalniku in vse je videti običajno. To ni protislovje, ampak namen: preusmeritve po vdoru so zgrajene tako, da jih upravljavci opazijo čim pozneje.
Za vaše podjetje je to občutljivo. Obiskovalci izgubljajo zaupanje, iskalniki in brskalniki lahko prikažejo opozorila, na ciljnih straneh pa včasih čakajo goljufija ali škodljiva programska oprema. Poleg tega preusmeritev skoraj nikoli ni edino, kar napadalec pusti za seboj.
Po PHP2Shell, ranljivostih CVE-2026-109618 in CVE-2026-109619 z izvajanjem kode brez prijave, so preusmeritve med vidnimi posledicami, ki naj jih upravljavci vzamejo resno. Niso specifičen znak PHP2Shell, saj potrjenih indikatorjev ogroženosti (Indicators of Compromise) ni. Kažejo pa, da je nekdo lahko spreminjal vsebine vaše spletne strani.
Preusmeritve pogosto ne pridejo same. Kdor obiskovalce preusmerja, pogosto dodatno ustvari spam strani za iskalnike, da prestreže še več prometa. Če Google že prikazuje opozorilo o vdrti spletni strani, pot do preverjanja opisuje vodnik Odstranitev opozorila Googla. Tuje strani v iskalnem indeksu obravnava prispevek SEO spam in tuje strani v indeksu Googla.
Zakaj spletna stran preusmerja samo občasno
Pogojne preusmeritve ovrednotijo značilnosti zahteve. Pogosto so to naslednje:
- Izvor: preusmerjen je samo, kdor pride prek rezultata iskanja. Neposredni klici prikažejo običajno stran.
- Naprava: prizadete so samo mobilne naprave ali določeni brskalniki.
- Ponovitev: preusmeritev se sproži enkrat na obiskovalca, nato nastavi piškotek in molči.
- Prijava: kdor je prijavljen v CMS, ne vidi nikoli ničesar.
- Čas ali naključje: preusmeritev se sproži samo pri delu klicev.
Zato ne testirajte samo na delovnem mestu. Z bralno poizvedbo vidite, kako strežnik odgovarja na različne klice:
# Običajen klic: koda stanja in cilj morebitne preusmeritve
curl -s -o /dev/null -w '%{http_code} %{redirect_url}\n' https://www.ihre-domain.de/
# Klic, kot da prihaja z mobilne naprave prek iskanja
curl -s -o /dev/null -w '%{http_code} %{redirect_url}\n' \
-A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 Mobile/15E148" \
-e "https://www.google.com/" https://www.ihre-domain.de/
Če se tuj cilj pojavi samo pri drugi poizvedbi, je preusmeritev na strežniku. Če sta obe neopazni, se lahko zgodi v brskalniku prek JavaScript. Tedaj pomaga pogled v izvorno kodo dostavljene strani ali omrežni pogled razvijalskih orodij v brskalniku, najbolje v zasebnem oknu.
Spletna stran preusmerja: preverite šest plasti
Napredujte od zunaj navznoter. Tako se izognete urnemu iskanju po kodi, medtem ko je vzrok v vnosu DNS:
| Plast | Tipičen vzrok | Preverjanje |
|---|---|---|
| Domena in DNS | spremenjen vnos A ali imenski strežnik | vnose DNS primerjajte z znanim ciljnim stanjem, preverite dostop pri registrarju |
| CDN ali proxy | tuje pravilo za preusmeritev ali stran | preglejte pravila v uporabniškem območju ponudnika |
| Spletni strežnik | pravila v .htaccess ali konfiguraciji strežnika |
poiščite pravila Rewrite in Redirect s pogoji |
| Koda PHP | dodatna koda v vstopnih datotekah, predlogah ali razširitvah | jedrne datoteke primerjajte z originalom |
| Zbirka podatkov | spremenjene nastavitve naslovov, skripti v vsebinah ali možnostih | ciljno iščite tuje naslove in skripte |
| Zunanji skripti | ogrožena vključitev tretjega ponudnika | naštejte vključene vire skriptov in jih ocenite |
Zunanje plasti radi preskočimo, ker niso na lastnem strežniku. Prav zato so nevarne: kdor je prevzel račun pri registrarju ali ponudniku CDN, ne potrebuje dostopa do strežnika. Tam poleg pravil preverite tudi, kdo ima dostop in ali je vklopljena dvostopenjska prijava.
Za plast spletnega strežnika so primerna bralna iskanja pravil, ki se odzivajo na izvor ali napravo:
# Pravila za preusmeritev s pogoji v vseh datotekah .htaccess
grep -rn --include='.htaccess' -iE 'Rewrite(Cond|Rule)|Redirect' /var/www/ihre-website
# Preusmeritve v konfiguraciji strežnika (Apache in Nginx)
grep -rn -iE 'Rewrite|Redirect|return 30[12]' /etc/apache2/ /etc/nginx/ 2>/dev/null
Za plast PHP postopek opisuje Primerjava jedrnih datotek CMS z originalom. Za zbirko podatkov je vreden prispevek Preverjanje zbirke podatkov za vneseno kodo.
Ko je vzrok zunaj strežnika
Vsaka preusmeritev ne pomeni ogroženega strežnika. Vključeni skripti tretjih ponudnikov, na primer za klepete, statistiko ali oglase, se izvajajo neposredno v brskalniku obiskovalcev. Če je tak ponudnik ogrožen ali če poteče domena, s katere vaša stran še vedno nalaga skript, lahko prek tega nastane preusmeritev, ne da bi bila na vašem strežniku spremenjena kakšna datoteka.
Content Security Policy omeji, iz katerih virov sme brskalnik nalagati skripte, in take primere naredi vidne. Namigi so v prispevku Varnostne glave za spletne strani. Zelo redko je vzrok pri samem obiskovalcu: oglaševalska ali škodljiva programska oprema na njegovem računalniku potem preusmerja tudi na drugih spletnih straneh.
Pravilno zaporedje po odkritju
- Zaščitite obiskovalce: spletno stran preklopite v vzdrževalni način ali zaprite prizadeta območja.
- Zavarujte sledi: sumljiva pravila, datoteke in vsebine zbirke podatkov skopirajte s časovnim žigom, preden jih odstranite.
- Odstranite: odpravite preusmeritev in jedrne datoteke zamenjajte iz čistega vira.
- Zaprite vstopno točko: PHP posodobite na popravljeno stanje, posodobite CMS in razširitve, znova zaženite vse delavce, obnovite dostope.
- Ponovno preizkusite: znova preverite z vsemi različicami iz drugega razdelka in spremljajte Search Console.
Odstranjeno pravilo za preusmeritev ni dokaz za čisto spletno stran. Če se pravilo po nekaj dneh vrne, je nekje še vedno stranska vrata, ki ga znova zapišejo.
Kako PHP SOS pomaga konkretno?
- Preusmeritev reproduciramo z različnimi oznakami in izvornimi stranmi ter zožimo plast.
- Zavarujemo sledi in odstranimo preusmeritve, škodljivo kodo in stranska vrata v datotekah, konfiguraciji in zbirki podatkov.
- Ob akutni okužbi nujna pomoč pri vdrtih spletnih straneh prevzame zajezitev, dokler incident ni zaključen in dokumentiran.
- Preverimo vključene skripte tretjih ponudnikov in priporočimo ustrezno Content Security Policy.
Pogosta vprašanja
Zakaj preusmeritve ne vidim sam?
Številne preusmeritve delujejo samo pod določenimi pogoji: za obiskovalce iz Googlovega iskanja, samo na mobilnih napravah, samo ob prvem obisku ali ne za prijavljene skrbnike. Zato testirajte z različnimi napravami, brez prijave in prek povezave iz rezultatov iskanja.
Ali lahko preusmeritev nastane tudi brez vdora?
Da. Podobne učinke lahko imajo potekel vtičnik, ogrožen zunanji skript, napačni vnosi DNS ali škodljiva programska oprema na računalniku obiskovalca. Če je vzrok na lastnem računalniku, se preusmeritev običajno pojavlja tudi na drugih spletnih straneh.
Kje napadalci najpogosteje skrivajo preusmeritve?
Tipična so pravila v .htaccess ali konfiguraciji strežnika, dodatna koda v vstopnih datotekah aplikacije, spremenjene nastavitve naslovov v zbirki podatkov in vneseni drobci JavaScript v vsebinah ali predlogah.
Kaj naj storim takoj, če moja spletna stran preusmerja?
Zaščitite obiskovalce, na primer z vzdrževalnim načinom, in zavarujte sledi, preden karkoli izbrišete. Nato plast za plastjo iščite vzrok in zaprite vstopno točko. Odstranjeno pravilo brez zaprte ranljivosti se običajno vrne.