Besökarna hamnar på en lotterisida, ett nätapotek eller en falsk supportsida, men själv ser du webbplatsen som vanligt. Det är kännetecknet för en inlagd omdirigering, oftast en villkorad sådan. Den här guiden visar hur du framkallar den med avsikt, hittar den i filerna eller i databasen och stänger dörren den kom in genom.
wp-config.php..htaccess, PHP-filerna, databasen och inställningarna för webbplatsens adress.wp-content/uploads, tillägg som ska installeras om eller raderas.En omdirigering som lagts in vid ett intrång väljer vilka den drabbar. Den skonar gärna den som driver webbplatsen, eftersom den då får sitta kvar längre. De vanligaste villkoren:
Referer-huvud.User-Agent-huvudet.När en kund skriver ”er webbplats skickar mig någon annanstans” är det alltså värt att ta på allvar, även om allt ser rätt ut på din skärm.
Sätt dig i den besökares ställe som blir omdirigerad:
Har du tillgång till en terminal hämtar det här kommandot din startsida och utger sig för att vara en iPhone som kommer från Google:
curl -s -i -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)" -e "https://www.google.com/" https://www.din-webbplats.com/
Läs de första raderna i svaret. Statuskoden 301 eller 302 följd av en Location:-rad mot en okänd adress betyder att det är servern som omdirigerar: leta i .htaccess eller i en PHP-fil. Statuskoden 200 medan webbläsaren ändå omdirigeras betyder att omdirigeringen körs inne i sidan, i JavaScript: den ligger då oftast i databasen eller i en fil i temat.
DB_PASSWORD i wp-config.php) och varje administratörskonto i WordPress.AUTH_KEY till NONCE_SALT i wp-config.php med en ny uppsättning från https://api.wordpress.org/secret-key/1.1/salt/. Alla öppna sessioner loggas ut, även inkräktarens.wp config shuffle-salts
I webbplatsens rotmapp, och ibland i en undermapp, kan .htaccess innehålla omskrivningsregler som angriparen har lagt till. Blocket som WordPress själv skriver är kort och står mellan # BEGIN WordPress och # END WordPress:
# BEGIN WordPress
# Direktiven (raderna) mellan ”BEGIN WordPress” och ”END WordPress” är
# dynamiskt genererade och bör endast ändras via WordPress-filter.
# Eventuella ändringar av direktiven mellan dessa markörer kommer att skrivas över.
<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
En RewriteCond som testar %{HTTP_REFERER} (google, bing, facebook) eller %{HTTP_USER_AGENT} (android, iphone, mobile), följd av en RewriteRule mot en extern adress, är omdirigeringen. Cache- och säkerhetstillägg skriver också egna block, märkta med sitt namn: jämför varje block med din lista över tillägg innan du tar bort det.
WP-CLI jämför filerna i WordPress-kärnan och i tilläggen med de kontrollsummor som WordPress.org publicerar, och listar varje fil som har ändrats eller lagts till:
wp core verify-checksums
wp plugin verify-checksums --all
Det andra kommandot omfattar tillägg som distribueras via katalogen på WordPress.org. Ett tillägg som köpts hos sin utgivare jämförs med en ny kopia som du laddar ned från ditt konto hos utgivaren. Det är vanligt: bland de 540 WordPress-webbplatserna hos små och medelstora företag i vår mätning den 1 september 2026 kör 66 % minst ett tillägg som inte finns i den publika katalogen.
Utan WP-CLI ger två sökningar en första gallring:
find . -name "*.php" -mtime -30
find wp-content/uploads -name "*.php"
Den första listar PHP-filer som ändrats de senaste 30 dagarna, den andra PHP-filer i mediamappen, där de i grunden är misstänkta (vissa tillägg lägger en tom index.php där, och den är helt i sin ordning). Ändringsdatum kan förfalskas, så en gammal fil på fel plats förtjänar ändå en titt.
Öppna dessa först: wp-config.php, index.php i rotmappen, functions.php och header.php i det aktiva temat, samt mappen wp-content/mu-plugins, vars tillägg laddas automatiskt och inte kan stängas av från adminpanelen. Tecken att leta efter: eval(, base64_decode(, gzinflate(, str_rot13(, långa oläsliga teckensträngar eller window.location följt av en adress du inte känner igen.
En omdirigering i JavaScript sparas ofta i inläggens innehåll eller i inställningarna, där ingen fil visar den. WP-CLI söker efter en teckensträng i alla WordPress-tabeller:
wp db search "<script"
wp db search "fromCharCode"
Utan WP-CLI kör du samma sökningar i phpMyAdmin, under fliken SQL:
SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%<script%';
SELECT option_name FROM wp_options WHERE option_value LIKE '%<script%';
Vissa träffar är legitima: en tagg för besöksstatistik, en cookiebanner, en widget du själv har lagt till. Allt som inte motsvarar något du installerat förtjänar en närmare titt, särskilt ett skript som bygger ihop en adress av teckenkoder.
Under Inställningar > Allmänt ska ”WordPressadress (URL)” och ”Webbplatsadress (URL)” visa din egen domän. Samma värden kan tvingas fram i wp-config.php med konstanterna WP_HOME och WP_SITEURL, så kontrollera båda ställena.
wp option get home
wp option get siteurl
wp user list --role=administrator
När konstanterna är definierade returnerar de två första kommandona deras värden. Det sista listar administratörerna med registreringsdatum; i adminpanelen får du samma lista under Användare, filtrerad på rollen Administratör. Ett konto som ingen känner igen raderas, och dess innehåll tilldelas ett legitimt konto.
Att radera raden som omdirigerar stoppar symtomet. Den åtkomst som angriparen använde står öppen tills du hittar den, och omdirigeringen kommer tillbaka inom några dagar. Ordningen som håller:
wp-admin och wp-includes och kör sedan wp core download --skip-content --force, som skriver om kärnan utan att röra dina tillägg, teman och mediefiler. Kommandot skriver över befintliga filer men raderar inget som lagts till, och därför tas de två mapparna bort först, och okända PHP-filer i rotmappen tas bort för hand.wp-content/uploads, reglerna som lagts till i .htaccess och skripten du hittat i databasen.wp cron event list: en uppgift med ett okänt namn kan lägga tillbaka koden.Behandlar webbplatsen personuppgifter (formulär, kundkonton, beställningar), så anteckna när du upptäckte intrånget. I Europeiska unionen kräver dataskyddsförordningen (GDPR) att en personuppgiftsincident anmäls till tillsynsmyndigheten utan onödigt dröjsmål och, om så är möjligt, inte senare än 72 timmar efter att man fått vetskap om den, såvida det inte är osannolikt att incidenten medför en risk för fysiska personers rättigheter och friheter.
När Google upptäcker omdirigeringen kan Chrome visa en röd sida med varningen ”Farlig webbplats” innan webbplatsen öppnas, och Google kan skriva ”Denna webbplats kan ha blivit hackad” under ditt sökresultat. Rapporten Säkerhetsproblem i Google Search Console visar vad som hittats och på vilka webbadresser. När webbplatsen är sanerad startar knappen Begär granskning kontrollen.
När omdirigeringen är borta återstår en fråga: vem sköter webbplatsen framöver? Simafri tar över din WordPress-webbplats, lägger upp den igen på en grund vi driftar, säkrar och håller uppdaterad, och sköter den sedan, månad efter månad. Du behåller ditt domännamn och ditt innehåll.
Den inlagda koden läser webbläsarens User-Agent och omdirigerar bara telefoner, så den som sköter webbplatsen, ofta från en dator, ser ingenting. Testa från en telefon på mobildata, eller med curl och en mobilwebbläsares identifierare.
En ominstallation av kärnan skriver om WordPress-filerna utan att radera dem som en angripare kan ha lagt till. Databasen, temat, tilläggen och mediamappen förblir som de är, och det är oftast där omdirigeringen och angriparens åtkomst sitter. En ny kärna är ett steg i saneringen, tillsammans med databasen, tilläggen, kontona och lösenorden.
Därför att den åtkomst som användes för att lägga in den finns kvar: ett tillagt administratörskonto, en PHP-fil gömd bland mediefilerna, en schemalagd uppgift, ett sårbart tillägg. Vilken som helst av dem gör att koden kan läggas tillbaka efter saneringen. Kontrollera kontona, mappen wp-content/uploads, de schemalagda uppgifterna och tilläggens versioner, och byt sedan lösenorden igen.
Öppna Google Search Console och gå till rapporten Säkerhetsproblem: den listar de problem som hittats och exempel på webbadresser. Är webbplatsen ännu inte verifierad i Search Console täcker en verifiering via en DNS-post hela domänen.
Simafri
Låt oss prata om din webbplats
Berätta om ditt projekt med några ord: vi återkommer snabbt.
Tack! Din förfrågan har skickats. Vi återkommer till dig inom kort.
Föredrar du e-post? Skriv till oss på support@simafri.com.