Hoe om te gaan met een gehackte WordPress-website

In dit artikel bespreken we de meest voorkomende soorten WordPress-hacks, hoe je ze kunt herkennen en de verschillende methoden om ze op te lossen. Als je met zo'n probleem te maken krijgt, raden we sterk aan om contact op te nemen met een professionele webontwikkelaar voor verdere hulp. Voor extra begeleiding bij het verbeteren van de beveiliging van je hostingaccount, raadpleeg deze handleiding.

BELANGRIJK: Maak altijd een volledige back-up van je website voordat je wijzigingen aanbrengt. 

LET OP: Om het risico op toekomstige WordPress-hacks te verkleinen, scan je regelmatig je hostingaccount met een antivirusprogramma, verwijder je kwaadaardige of verdachte bestanden en houd je alle plug-ins en thema's van je website up-to-date.

  1. Ontbrekende standaardbestanden

  2. Hoe ontbrekende WordPress-bestanden vervangen

  3. Hoe alle standaard WordPress-bestanden vervangen

  4. Ontbrekende thema- of pluginbestanden

  5. Kwaadaardige redirects

Ontbrekende standaardbestanden

Hoewel verschillende problemen kunnen leiden tot ontbrekende of gewijzigde standaardbestanden, is de meest voorkomende oorzaak malware die in je WordPress-installatie is geïnjecteerd. Gelukkig kunnen de antivirusprogramma's op onze Web- en Hostingservers automatisch geïnfecteerde bestanden detecteren en in quarantaine plaatsen.

Als je kernbestanden van WordPress geïnfecteerd raken, kun je symptomen tegenkomen zoals:

  • Een blanco pagina;

  • Een 500 Internal Server Error;

  • Een “Deze site ondervindt technische problemen”-fout (ingevoerd in WordPress 5.2.2);

  • Of andere vergelijkbare fouten.

Volg eenvoudigweg de onderstaande stappen om dit probleem op te lossen.

Controleer het error_log-bestand van je website

Om te achterhalen wat het probleem op je site heeft veroorzaakt, bekijk je het error_log-bestand. Dit bestand registreert alle kritieke fouten die je website tegenkomt.

Je vindt het in je cPanel-account > het menu “Bestandsbeheer” > de hoofdmap van je WordPress-installatie. 

Zodra je toegang hebt tot de hoofdmap van het domein, zoek je het error_log-bestand. Als het bestaat, volg dan deze stappen:

  1. Klik met de rechtermuisknop op het bestand en kies vervolgens Bekijken:


  2. In het logbestand kun je een fout zien zoals: “No such file or directory in…”, gevolgd door het pad van het ontbrekende bestand. Dit geeft aan dat een vereist bestand ontbreekt en voorkomt dat de website correct werkt.

    Bijvoorbeeld:

    /home/cPuser/public_html/wp-settings.php

  3. Om het ontbrekende bestand te herstellen, scrol je naar het gedeelte "Hoe ontbrekende bestanden vervangen" van deze handleiding.

Schakel de display_errors PHP-optie in

Als het error_log-bestand niet beschikbaar is in de hoofdmap van je website, kun je de display_errors PHP-optie inschakelen in je cPanel-account. Met deze instelling worden foutmeldingen direct op je website weergegeven, zodat je het probleem gemakkelijker kunt identificeren.

Belangrijk: Schakel display_errors na het oplossen van het probleem uit om veiligheidsredenen.

Je kunt de PHP-optie op de volgende manieren inschakelen:

  • Via php.ini 

Naast het menu “PHP Tweaks” van cPanel kun je ook bepaalde instellingen voor een website direct aanpassen via een php.ini-bestand door daar de betreffende regels toe te voegen of te bewerken. 

Om de display_errors-optie in te schakelen, moet je de volgende regel aan het bestand toevoegen:

display_errors=1

Je kunt ofwel een nieuw php.ini bestand aanmaken in de hoofdmap van de website en daar de regel toevoegen, of het systeemgegenereerde bestand aanpassen door de onderstaande stappen te volgen.

  1. Log in op je cPanel-account en ga naar het menu “Bestandsbeheer”.

  2. Zorg ervoor dat de optie “Verborgen bestanden weergeven (dotfiles)” is ingeschakeld in de instellingen:


  3. Navigeer naar de volgende map:  /home/cPanel_user/.system-php/ini


  4. Selecteer de PHP-versie die aan je domein is toegewezen en selecteer vervolgens de map van het domein. Het volledige pad kan er bijvoorbeeld zo uitzien:

    /home/cPanel_user/.system-php/ini/7.0/testwebsite.com

  5. Klik met de rechtermuisknop op het php.ini-bestand en kies Bewerken.

  6. Voeg de volgende regel toe aan het bestand:

    display_errors=1

  • Via .htaccess


Om de display_errors PHP-optie via het .htaccess-bestand in te schakelen, moet je het bestand in de hoofdmap van de website in “Bestandsbeheer” bewerken en daar de volgende regel toevoegen:

php_value display_errors 1

De gedetailleerde stappen om het .htaccess-bestand te vinden, vind je in dit artikel. 

Klik na het aanbrengen van je wijzigingen op Opslaan.

Hoe ontbrekende WordPress-bestanden vervangen

WordPress gebruikt een eenvoudige en overzichtelijke mappenstructuur, waardoor het relatief eenvoudig is om ontbrekende of beschadigde bestanden te herstellen. Het wordt sterk aanbevolen om de standaard kernbestanden te vervangen, omdat je er zo zeker van bent dat alle door malware aangetaste bestanden volledig worden hersteld. Ga echter voorzichtig te werk: het vervangen van bepaalde bestanden of mappen kan tot gegevensverlies leiden als dit niet correct gebeurt.

Volg de onderstaande stappen om ontbrekende WordPress-bestanden te vervangen:

  1. Log in op je cPanel en ga naar Softaculous Apps Installer.

  2. Maak een nieuwe WordPress-installatie aan in een tijdelijke submap. Klik hiervoor op het WordPress-pictogram en selecteer vervolgens Installeren:


  3. Je wordt doorgestuurd naar de installatie-instellingen. Selecteer daar de betreffende domeinnaam in het dropdownmenu en voer de naam van een submap in het veld In Directory in.

    In dit voorbeeld gebruiken we de submap ” fix” voor de WordPress-installatie:


    OPMERKING: Als je alle standaardbestanden vervangt, wordt je bestaande installatie bijgewerkt naar de versie die in de tijdelijke “fix”-installatie wordt gebruikt. Het combineren van bestanden van verschillende versies kan systeemconflicten veroorzaken en de functionaliteit van de site verstoren.

    Als het belangrijk is om je huidige WordPress-versie te behouden, of als je alleen specifieke bestanden wilt vervangen, controleer dan de versie van je site in het bestand /wp-includes/version.php , en zorg ervoor dat de nieuwe installatie dezelfde WordPress-versie gebruikt:


  4. Je kunt de WordPress-versie voor de nieuwe installatie direct in het installatievenster kiezen:


  5. Zodra alle instellingen zijn geconfigureerd, klik je op Snelle installatie of scrol je naar de onderkant van de installatiepagina en klik je op Installeren. 

  6. Na het voltooien van de nieuwe WordPress-installatie verschijnen de bestanden in “Bestandsbeheer” > de hoofdmap van je domein. Open de map door erop te dubbelklikken:


  7. Om een specifiek ontbrekend bestand te vervangen (bijvoorbeeld wp-settings.php), zoek je dat bestand in de map van de nieuwe installatie.

  8. Verplaats het bestand vervolgens naar de huidige hoofdmap van je website door met de rechtermuisknop op het bestand te klikken > klik op Verplaatsen > voer het pad naar de hoofdmap van je website in > klik op Bestand(en) verplaatsen: 


  9. Zodra dit is voltooid, is het ontbrekende bestand hersteld en zou je website nu correct moeten laden.

Hoe alle standaard WordPress-bestanden vervangen

Bij het vervangen van alle standaard WordPress-bestanden voor een website zijn stap 1-6 hetzelfde als in het gedeelte “Hoe ontbrekende WordPress-bestanden vervangen”. 

Nadat deze stappen zijn voltooid en de nieuwe WordPress-installatie is aangemaakt, volg je deze stappen om alle standaardbestanden in de hoofdmap van je website te vervangen:

  1. Open de hoofdmap van de nieuwe WordPress-installatie:


  2. Verwijder in de nieuwe installatiemap de volgende bestanden en mappen:


    • .htaccess

    • wp-config.php

    • wp-content

      Deze bestanden en mappen bevatten de configuratie en inhoud van je site en moeten ongewijzigd blijven.

  3. Verplaats vervolgens de overige bestanden naar de hoofdmap van je hoofdwebsite. Gebruik hiervoor de knop Alles selecteren > klik op Verplaatsen > voer het pad naar de hoofdmap van je site in > klik op Bestand(en) verplaatsen:


  4. Je WordPress-kernbestanden zijn volledig vervangen. Bezoek je website om te controleren of alles correct laadt.

    Als de site nog steeds fouten weergeeft, controleer dan opnieuw het error_log. In de meeste gevallen worden extra problemen veroorzaakt door ontbrekende thema- of pluginbestanden.

Ontbrekende thema- of pluginbestanden

Ontbrekende thema- of pluginbestanden kunnen om verschillende redenen voorkomen, maar de meest voorkomende oorzaak is malware die essentiële onderdelen van je WordPress-installatie infecteert en verwijdert. 

Als er thema- of pluginbestanden van je WordPress ontbreken, kun je het volgende tegenkomen:

  • Een blanco pagina;

  • Een 500 Internal Server Error;

  • Een “Deze site ondervindt technische problemen”-fout (ingevoerd in WordPress 5.2.2);

  • Een gedeeltelijk geladen of visueel “gebroken” pagina.

Voor hulp bij het diagnosticeren van het probleem, raadpleeg de volgende secties van dit artikel: Controleer het error_log-bestand van je website en Schakel de display_errors PHP-optie in.

Je kunt foutmeldingen zien die lijken op de volgende in je error_log of direct op de website:

PHP Fatal error: Uncaught Error: Call to undefined function sample_function() in /home/cPaneluser/...

Hieronder staat een voorbeeld van een fout veroorzaakt door een beschadigd of ontbrekend pluginbestand:


Om het ontbrekende bestand te herstellen, installeer je het betreffende thema of de plugin opnieuw.

OPMERKING: Ontbrekende functions.php-bestanden in thema's zijn vaak gekoppeld aan de wp-vcd.php-malware, meestal te vinden in de map /wp-includes. Verwijder wp-vcd.php als deze bestaat voordat je een nieuw thema installeert, of vervang, als je volledige veiligheid wilt garanderen, alle standaard WordPress-bestanden zoals eerder beschreven eerder.

Kwaadaardige redirects

In sommige gevallen, wanneer je website geïnfecteerd raakt met malware, kan deze bezoekers doorsturen naar schadelijke of verdachte pagina's. Dit probleem wordt meestal veroorzaakt door een onveilige plugin of thema, waardoor aanvallers database-URL's kunnen wijzigen of de bestanden van je website kunnen aanpassen.

OPMERKING: Klik nooit op een van de doorgestuurde links. Dit kan je persoonlijke computer infecteren met malware:


Volg de onderstaande stappen om kwaadaardige redirects te verhelpen:

  1. Zoek een databaseconfiguratiebestand voor je website - wp-config.php in je cPanel > Bestandsbeheer > de hoofdmap van de website. Open het bestand en zoek daar de databasenaam van de website:


  2. Open vervolgens de database die aan je website is toegewezen in het menu phpMyAdmin van je cPanel door erop te klikken en navigeer naar de tabel wp_options (“wp_” is het standaardvoorvoegsel; het jouwe kan anders zijn):


  3. Controleer de waarden van de velden siteurl en home en vervang deze door je eigen domeinnaam als je daar kwaadaardige of verdachte URL's ziet: 


  4. Scan de rest van je database op vergelijkbare kwaadaardige URL's en vervang deze indien nodig. 

  5. Vervang tijdelijk je huidige .htaccess door een schone standaardversie. Het is het beste om het bestaande bestand te hernoemen (bijvoorbeeld .htaccess_old) en een nieuw bestand helemaal opnieuw aan te maken.

    Om het bestand te hernoemen, dubbelklik je erop > selecteer Hernoemen in de lijst > voer een nieuwe bestandsnaam in > en druk op Bestand hernoemen.

    Maak daarna een nieuw bestand aan door te klikken op + Bestand > geef het de naam .htaccess > en selecteer Nieuw bestand aanmaken.

  6. Zodra het nieuwe .htaccess is aangemaakt, bewerk je het door er met de rechtermuisknop op te klikken > selecteer Bewerken in de lijst. Zodra het bewerkingsvenster is geopend, plak je de volgende standaard WordPress-regels in het bestand:

    # BEGIN WordPress
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    # END WordPress

  7. Klik op Wijzigingen opslaan.

Als je website blijft doorsturen, probeer dan alle standaard WordPress-kernbestanden te vervangen.

Je kunt ook tijdelijk alle plugins uitschakelen via het WordPress-dashboard of de database en ze één voor één inschakelen. Controleer na het inschakelen van elke plugin de website om te zien welke de kwaadaardige redirect veroorzaakt.

Een geldig e-mailadres is vereist