Obiskovalci pristanejo na strani loterije, spletne lekarne ali lažne tehnične podpore, vi pa svojo stran vidite čisto normalno. To je znak vrinjene preusmeritve, najpogosteje pogojne. Ta vodnik pokaže, kako jo namerno sprožite, jo poiščete v datotekah ali v podatkovni zbirki in zaprete vrata, skozi katera je prišla.
wp-config.php..htaccess, datoteke PHP, podatkovna zbirka in nastavitve naslova strani.wp-content/uploads, vtičnike, ki jih je treba znova namestiti ali izbrisati.Preusmeritev, podtaknjena ob vdoru, si izbira tarče. Navadno prizanese osebi, ki stran upravlja, saj tako dlje ostane na mestu. Najpogostejši pogoji:
Referer.User-Agent.Ko vam stranka piše „vaša stran me pošlje nekam drugam“, ji zato verjemite, tudi če je na vašem zaslonu vse v redu.
Postavite se v vlogo obiskovalca, ki ga preusmeritev doleti:
Če imate terminal, ta ukaz naloži vašo domačo stran in se pri tem predstavi kot iPhone, ki prihaja z Googla:
curl -s -i -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)" -e "https://www.google.com/" https://www.vasa-stran.com/
Preberite prve vrstice odgovora. Status 301 ali 302, ki mu sledi vrstica Location: z neznanim naslovom, pomeni, da preusmerja strežnik: iščite v .htaccess ali v datoteki PHP. Status 200, medtem ko je brskalnik vseeno preusmerjen, pomeni, da se preusmeritev izvede znotraj strani, v JavaScriptu: navadno je shranjena v podatkovni zbirki ali v datoteki teme.
DB_PASSWORD v wp-config.php) in vsak skrbniški račun v WordPressu.AUTH_KEY do NONCE_SALT v wp-config.php zamenjajte z novim naborom z naslova https://api.wordpress.org/secret-key/1.1/salt/. Vse odprte seje se odjavijo, tudi vsiljivčeva.wp config shuffle-salts
V korenski mapi strani, včasih pa tudi v podmapi, lahko .htaccess vsebuje pravila za prepisovanje, ki jih je dodal napadalec. Blok, ki ga zapiše WordPress sam, je kratek in stoji med # BEGIN WordPress in # END WordPress:
# BEGIN WordPress
# Direktive (vrstice) med "BEGIN WordPress" in "END WordPress" so dinamično
# ustvarjene, in bi se smele spreminjati zgolj preko WordPressovih filtrov.
# Vse spremembe direktiv med tema označevalnikoma bodo prepisane.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Pravilo RewriteCond, ki preverja %{HTTP_REFERER} (google, bing, facebook) ali %{HTTP_USER_AGENT} (android, iphone, mobile), in za njim RewriteRule na zunanji naslov sta preusmeritev. Tudi vtičniki za predpomnjenje in varnost zapišejo svoje bloke, označene s svojim imenom: vsak blok primerjajte s seznamom svojih vtičnikov, preden ga odstranite.
WP-CLI primerja datoteke jedra WordPressa in vtičnikov s kontrolnimi vsotami, ki jih objavlja WordPress.org, in navede vsako spremenjeno ali dodano datoteko:
wp core verify-checksums
wp plugin verify-checksums --all
Drugi ukaz zajema vtičnike, ki se distribuirajo prek imenika WordPress.org. Vtičnik, kupljen pri izdajatelju, primerjate s svežo kopijo, preneseno iz vašega računa pri tem izdajatelju. To je pogosto: med 540 stranmi malih in srednjih podjetij na WordPressu iz naše meritve z dne 1. septembra 2026 jih 66 % uporablja vsaj en vtičnik, ki ga ni v javnem imeniku.
Brez WP-CLI vam dve iskanji dasta prvi ožji izbor:
find . -name "*.php" -mtime -30
find wp-content/uploads -name "*.php"
Prvo navede datoteke PHP, spremenjene v zadnjih 30 dneh, drugo datoteke PHP v mapi z mediji, kjer so že same po sebi sumljive (nekateri vtičniki tja postavijo prazno datoteko index.php, kar je v redu). Datume sprememb je mogoče ponarediti, zato si tudi stara datoteka na napačnem mestu zasluži pogled.
Najprej odprite wp-config.php, index.php v korenski mapi, functions.php in header.php aktivne teme ter mapo wp-content/mu-plugins, katere vtičniki se naložijo samodejno in jih na nadzorni plošči ni mogoče izklopiti. Kaj iskati: eval(, base64_decode(, gzinflate(, str_rot13(, dolge neberljive nize ali window.location, ki mu sledi naslov, ki ga ne poznate.
Preusmeritev v JavaScriptu je pogosto shranjena v vsebini prispevkov ali v nastavitvah, kjer je nobena datoteka ne pokaže. WP-CLI poišče niz v vseh tabelah WordPressa:
wp db search "<script"
wp db search "fromCharCode"
Brez WP-CLI ista iskanja zaženete v phpMyAdminu, na zavihku SQL:
SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%<script%';
SELECT option_name FROM wp_options WHERE option_value LIKE '%<script%';
Nekateri zadetki so upravičeni: koda za merjenje obiska, pasica za piškotke, gradnik, ki ste ga dodali sami. Vse, kar se ne ujema z ničemer, kar ste namestili, si zasluži natančnejši pogled, zlasti skripta, ki naslov sestavi iz kod znakov.
V meniju Nastavitve > Splošno morata polji „Naslov za WordPress (URL)“ in „Naslov spletišča (URL)“ kazati vašo domeno. Isti vrednosti je mogoče vsiliti tudi v wp-config.php s konstantama WP_HOME in WP_SITEURL, zato preverite obe mesti.
wp option get home
wp option get siteurl
wp user list --role=administrator
Kadar sta konstanti določeni, prva dva ukaza vrneta njuni vrednosti. Zadnji navede skrbnike z datumom registracije; na nadzorni plošči isti seznam dobite v meniju Uporabniki, filtriranem po vlogi Skrbnik. Račun, ki ga nihče ne prepozna, izbrišete, njegovo vsebino pa pripišete upravičenemu računu.
Izbris vrstice, ki preusmerja, ustavi simptom. Dostop, ki ga je uporabil napadalec, ostane odprt, dokler ga ne najdete, preusmeritev pa se vrne v nekaj dneh. Vrstni red, ki zdrži:
wp-admin in wp-includes, nato zaženite wp core download --skip-content --force, ki jedro zapiše znova, ne da bi se dotaknil vaših vtičnikov, tem in medijev. Ukaz prepiše obstoječe datoteke, ne izbriše pa ničesar, kar je bilo dodano: zato gresta mapi prvi, neznane datoteke PHP v korenski mapi pa odstranite ročno.wp-content/uploads, pravila, dodana v .htaccess, in skripte, najdene v podatkovni zbirki.wp cron event list: opravilo z neznanim imenom lahko kodo vrne nazaj.Če stran hrani osebne podatke (obrazci, računi strank, naročila), zapišite, kdaj ste vdor odkrili. V Evropski uniji Splošna uredba o varstvu podatkov zahteva, da upravljavec o kršitvi varstva osebnih podatkov uradno obvesti pristojni nadzorni organ najpozneje v 72 urah po seznanitvi s kršitvijo, razen če ni verjetno, da bi bile s kršitvijo ogrožene pravice in svoboščine posameznikov.
Ko Google preusmeritev zazna, lahko Chrome pred odprtjem strani prikaže rdeče opozorilo „Nevarno spletno mesto“, Google pa lahko pod vaš rezultat iskanja zapiše „Na tem spletnem mestu je morda prišlo do vdora“. Poročilo Varnostne težave v konzoli Google Search Console pokaže, kaj je bilo najdeno in na katerih URL-jih. Ko je stran očiščena, pregled zahtevate iz tega poročila: gumb se v angleškem vmesniku imenuje Request Review.
Ko je preusmeritev odstranjena, ostane eno vprašanje: kdo bo odslej skrbel za stran? Simafri prevzame vašo stran na WordPressu, jo vrne na splet na osnovi, ki jo gostimo, varujemo in vzdržujemo, nato pa zanjo skrbi mesec za mesecem. Domena in vsebina ostaneta vaši.
Vrinjena koda bere User-Agent brskalnika in preusmerja samo telefone, zato oseba, ki stran upravlja, pogosto z računalnika, ne vidi ničesar. Preizkusite s telefona na mobilnih podatkih ali z ukazom curl, ki pošlje identifikator mobilnega brskalnika.
Ponovna namestitev jedra znova zapiše datoteke WordPressa, ne izbriše pa tistih, ki jih je morda dodal napadalec. Podatkovna zbirka, tema, vtičniki in mapa z mediji ostanejo, kakršni so, prav tam pa sta navadno preusmeritev in napadalčev dostop. Sveže jedro je en korak čiščenja, poleg podatkovne zbirke, vtičnikov, računov in gesel.
Ker je dostop, prek katerega je bila podtaknjena, še vedno tam: dodan skrbniški račun, datoteka PHP, skrita med mediji, načrtovano opravilo, ranljiv vtičnik. Vsak od njih omogoča, da se koda po čiščenju vrne. Preverite račune, mapo wp-content/uploads, načrtovana opravila in različice vtičnikov, nato znova zamenjajte gesla.
Odprite Google Search Console in poročilo Varnostne težave: navaja najdene težave in primere URL-jev. Če stran v Search Console še ni preverjena, preverjanje z zapisom DNS zajame celotno domeno.
Simafri
Pogovorimo se o vašem projektu
Povejte nam v nekaj besedah, kaj potrebujete: hitro se vam oglasimo.
Hvala! Vaše povpraševanje je bilo poslano. Kmalu vam bomo odgovorili.
Imate raje e-pošto? Pišite nam na support@simafri.com.