Kävijänne päätyvät arpajaissivulle, verkkoapteekkiin tai väärennetyn teknisen tuen sivulle, mutta itse näette sivustonne normaalisti. Se on merkki sivustolle ujutetusta uudelleenohjauksesta, joka toimii useimmiten vain tietyin ehdoin. Tämä opas näyttää, miten uudelleenohjaus toistetaan, miten se löytyy tiedostoista tai tietokannasta ja miten suljetaan reitti, jota pitkin se asennettiin.
wp-config.php-tiedoston tietoturva-avaimet..htaccess, PHP-tiedostot, tietokanta ja sivuston osoiteasetukset.wp-content/uploads, uudelleen asennettavat tai poistettavat lisäosat.Murron yhteydessä asennettu uudelleenohjaus valitsee, keihin se kohdistuu. Useimmiten se säästää sivustoa hoitavan henkilön, jotta se pysyisi paikallaan mahdollisimman pitkään. Yleisimmät ehdot:
Referer-otsakkeen.User-Agent-otsakkeen.Kun asiakas kirjoittaa, että sivustonne vie hänet muualle, viesti kannattaa ottaa todesta, vaikka kaikki näyttäisi omalla ruudullanne oikealta.
Asettukaa sen kävijän asemaan, jota uudelleenohjaus koskee:
Jos käytössänne on pääte, tämä komento pyytää etusivuanne esiintyen iPhonena, joka tulee Googlesta:
curl -s -i -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)" -e "https://www.google.com/" https://www.sivustonne.com/
Lukekaa vastauksen ensimmäiset rivit. Tilakoodi 301 tai 302, jota seuraa tuntemattomaan osoitteeseen vievä Location:-rivi, tarkoittaa, että uudelleenohjauksen tekee palvelin: se on .htaccess-tiedostossa tai PHP-tiedostossa. Tilakoodi 200, vaikka selain ohjataan silti muualle, tarkoittaa, että uudelleenohjaus tapahtuu sivun sisällä JavaScriptillä: se on useimmiten tietokannassa tai teeman tiedostossa.
wp-config.php-tiedoston vakioon DB_PASSWORD) ja jokainen WordPressin ylläpitäjätili.wp-config.php-tiedoston kahdeksan riviä, AUTH_KEY-rivistä NONCE_SALT-riviin, uusilla avaimilla, jotka saatte osoitteesta https://api.wordpress.org/secret-key/1.1/salt/. Kaikki avoimet istunnot suljetaan, myös tunkeutujan.wp config shuffle-salts
Sivuston juurihakemistossa, ja joskus myös alikansiossa, olevaan .htaccess-tiedostoon tunkeutuja voi lisätä omia uudelleenkirjoitussääntöjään. WordPressin itse kirjoittama lohko on lyhyt, ja sen rajaavat rivit # BEGIN WordPress ja # END WordPress:
# BEGIN WordPress
# Rivit, jotka ovat "BEGIN WordPress" ja "END WordPress" välissä on luotu dynaamisesti ja niitä tulee muokata vain WordPressin filttereillä. Kaikki manuaaliset muutokset riveihin tullaan yliajamaan.
<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
Uudelleenohjaus on RewriteCond-sääntö, joka testaa arvoa %{HTTP_REFERER} (google, bing, facebook) tai %{HTTP_USER_AGENT} (android, iphone, mobile) ja jota seuraa ulkopuoliseen osoitteeseen vievä RewriteRule. Myös välimuisti- ja tietoturvalisäosat kirjoittavat omia lohkojaan, jotka on merkitty niiden nimellä: verratkaa jokaista lohkoa lisäosienne luetteloon ennen kuin poistatte sen.
WP-CLI vertaa WordPressin ytimen ja lisäosien tiedostoja WordPress.orgin julkaisemiin tarkistussummiin ja luettelee jokaisen muutetun tai lisätyn tiedoston:
wp core verify-checksums
wp plugin verify-checksums --all
Jälkimmäinen komento kattaa WordPress.orgin hakemiston kautta jaetut lisäosat. Julkaisijalta ostettua lisäosaa verrataan tuoreeseen kopioon, jonka lataatte omalta asiakastililtänne julkaisijan palvelusta. Tilanne on yleinen: 1. syyskuuta 2026 tekemämme mittauksen 540 pk-yritysten WordPress-sivustosta 66 % käyttää vähintään yhtä lisäosaa, jota julkisessa hakemistossa ei ole.
Ilman WP-CLI:tä kaksi hakua antaa ensimmäisen karsinnan:
find . -name "*.php" -mtime -30
find wp-content/uploads -name "*.php"
Ensimmäinen luettelee viimeisten 30 päivän aikana muutetut PHP-tiedostot, toinen mediakansioon tallennetut PHP-tiedostot, jotka ovat siellä lähtökohtaisesti epäilyttäviä (jotkin lisäosat asettavat sinne tyhjän index.php-tiedoston, mikä on asianmukaista). Muokkauspäivämäärän voi väärentää: väärässä paikassa oleva vanhakin tiedosto kannattaa tutkia.
Avatkaa ensin wp-config.php, juurihakemiston index.php, aktiivisen teeman functions.php ja header.php sekä kansio wp-content/mu-plugins: siellä olevat lisäosat latautuvat automaattisesti, eikä niitä voi poistaa käytöstä hallintapaneelista. Etsittävät merkit: eval(, base64_decode(, gzinflate(, str_rot13(, pitkät lukukelvottomat merkkijonot tai window.location, jota seuraa osoite, jota ette tunnista.
JavaScriptillä tehty uudelleenohjaus ujutetaan usein sivujen sisältöön tai asetuksiin, joissa mikään tiedosto ei sitä näytä. WP-CLI hakee merkkijonoa kaikista WordPressin tauluista:
wp db search "<script"
wp db search "fromCharCode"
Ilman WP-CLI:tä samat haut tehdään phpMyAdminissa, SQL-välilehdellä:
SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%<script%';
SELECT option_name FROM wp_options WHERE option_value LIKE '%<script%';
Osa osumista on asianmukaisia: kävijäseurannan työkalu, evästebanneri tai itse lisäämänne widget. Kaikki, mikä ei vastaa mitään asentamaanne, kannattaa tutkia, erityisesti skripti, joka muodostaa osoitteen merkkikoodeista.
Kohdassa Asetukset > Yleinen kenttien ”WordPressin osoite (URL)” ja ”Sivuston osoite (URL)” on näytettävä oma verkkotunnuksenne. Samat arvot voidaan pakottaa wp-config.php-tiedostossa vakioilla WP_HOME ja WP_SITEURL: tarkistakaa molemmat paikat.
wp option get home
wp option get siteurl
wp user list --role=administrator
Kun vakiot on määritetty, kaksi ensimmäistä komentoa palauttavat niiden arvot. Viimeinen luettelee ylläpitäjät rekisteröitymispäivineen; hallintapaneelissa sama luettelo löytyy Käyttäjät-valikosta rajattuna Ylläpitäjä-rooliin. Tili, jota kukaan ei tunnista, poistetaan, ja sen sisältö siirretään asianmukaiselle tilille.
Uudelleenohjaavan rivin poistaminen lopettaa oireen. Tunkeutujan käyttämä reitti pysyy kuitenkin auki, kunnes se löytyy, ja uudelleenohjaus palaa muutamassa päivässä. Järjestys, joka pitää:
wp-admin ja wp-includes ja ajakaa sitten wp core download --skip-content --force, joka kirjoittaa ytimen uudelleen koskematta lisäosiinne, teemoihinne ja mediatiedostoihinne. Komento korvaa olemassa olevat tiedostot mutta jättää lisätyt tiedostot paikalleen: siksi nämä kaksi kansiota poistetaan ensin, ja siksi juurihakemiston tuntemattomat PHP-tiedostot poistetaan käsin.wp-content/uploads, .htaccess-tiedostoon lisätyt säännöt ja tietokannasta löytyneet skriptit.wp cron event list: tuntemattoman niminen tehtävä voi palauttaa koodin.Jos sivusto säilyttää henkilötietoja (lomakkeita, asiakastilejä, tilauksia), kirjatkaa ylös kellonaika, jolloin havaitsitte murron. Euroopan unionissa yleinen tietosuoja-asetus edellyttää, että henkilötietojen tietoturvaloukkauksesta ilmoitetaan valvontaviranomaiselle 72 tunnin kuluessa sen ilmitulosta, paitsi jos loukkauksesta ei todennäköisesti aiheudu riskiä luonnollisten henkilöiden oikeuksille ja vapauksille.
Kun Google havaitsee uudelleenohjauksen, Chrome voi näyttää punaisen ”Vaarallinen sivusto” -varoituksen ennen sivuston avaamista, ja Google voi lisätä hakutuloksenne yhteyteen merkinnän ”Tämä sivusto voi olla hakkeroitu”. Google Search Consolen Tietoturvaongelmat-raportti kertoo, mitä on havaittu ja missä osoitteissa. Kun sivusto on siivottu, Pyydä tarkastusta -painike käynnistää tarkistuksen.
Kun uudelleenohjaus on poistettu, jää yksi kysymys: kuka pitää sivustosta huolta tästä eteenpäin? Simafri ottaa WordPress-sivustonne haltuun, palauttaa sen verkkoon perustalle, jota ylläpidämme, suojaamme ja pidämme ajan tasalla, ja huolehtii siitä kuukausi toisensa jälkeen. Verkkotunnus ja sisältö pysyvät teidän.
Sivustolle ujutettu koodi lukee selaimen User-Agent-tunnisteen ja ohjaa muualle vain puhelimet. Sivustoa hoitava henkilö käyttää usein tietokonetta eikä huomaa mitään. Testatkaa puhelimella mobiiliyhteydellä tai curlilla, joka lähettää mobiiliselaimen tunnisteen.
Ytimen uudelleenasennus kirjoittaa WordPressin tiedostot uudelleen, mutta tunkeutujan mahdollisesti lisäämät tiedostot jäävät paikalleen. Tietokanta, teema, lisäosat ja mediakansio pysyvät ennallaan, ja juuri niissä uudelleenohjaus ja tunkeutujan reitti useimmiten ovat. Tuore ydin on yksi siivouksen vaihe, ja sen rinnalle kuuluvat tietokanta, lisäosat, tilit ja salasanat.
Koska reitti, jota pitkin se asennettiin, on yhä olemassa: lisätty ylläpitäjätili, mediatiedostojen joukkoon kätketty PHP-tiedosto, ajastettu tehtävä tai haavoittuvainen lisäosa. Mikä tahansa niistä mahdollistaa koodin palauttamisen siivouksen jälkeen. Tarkistakaa tilit, kansio wp-content/uploads, ajastetut tehtävät ja lisäosien versiot ja vaihtakaa sitten salasanat uudelleen.
Avatkaa Google Search Console ja sen Tietoturvaongelmat-raportti: se luettelee havaitut ongelmat ja esimerkkiosoitteita. Jos sivustoa ei ole vielä todennettu Search Consolessa, DNS-tietueella tehty todennus kattaa koko verkkotunnuksen.
Simafri
Jutellaan hankkeestasi
Kerro meille muutamalla sanalla, mitä tarvitset: vastaamme sinulle nopeasti.
Kiitos! Pyyntösi on lähetetty. Vastaamme sinulle pian.
Suositko sähköpostia? Kirjoita meille osoitteeseen support@simafri.com.