WordPress website gehackt? Zo los je het op.

WordPress wordt veel gebruikt. Zo veel zelfs dat 43,5 procent van alle websites wereldwijd op WordPress draait. Door de enorme populariteit van WordPress, is het óók een populair CMS om te hacken.

In dit artikel vertel ik je alles over WordPress hacks en hoe je deze kunt voorkomen.

Ik ga uitleggen:

  • Waarom websites gehackt worden.
  • Hoe je een gehackte WordPress website herkent.
  • Hoe je een WordPress hack kunt oplossen.
  • Of je een gehackte website moet melden bij instanties.
  • Wat je kunt doen om hacks in het vervolg te voorkomen.

Waarom worden (WordPress) websites gehackt?

Misschien vind je het totaal niet interessant waarom jouw WordPress-site een doelwit kan zijn voor hackers. In dat geval kun je deze alinea’s natuurlijk overslaan :-). Het kan echter zeker geen kwaad om te begrijpen waarom een hacker nou uitgerekend jouw site zou uitkiezen.

De meeste hackers doen dit omdat ze simpelweg geld willen verdienen. Zo herken je een gehackte site vaak aan vreemde advertenties. Of denk aan links naar andere websites die jij zelf nietr geplaatst hebt. Soms zie je deze meteen, maar soms worden er ook geraffineerde methodes gebruikt waardoor deze links of advertenties op een hele onopvallende manier worden geplaatst. Zo heb ik een keer iemand gesproken die maandenlang helemaal niet doorhad dat zijn website gehackt was.

Een andere reden voor hackers om jouw website te targeten is om de mailserver van jouw hosting te misbruiken. Via jouw site wordt dan de uitgaande e-mailserver van je hostingpartij gebruikt om soms wel duizenden SPAM-mails te versturen.

Wat doen hackers met een website?
Wat doen hackers met een website? (Bron van gegevens: Wordfence)

Lees ook: What Do Hackers Get By Hacking a Website? (Sucuri) en What Hackers Do With Compromised WordPress Sites (WordFence)

Hoe herken je dat je WordPress website gehackt is?

Voordat je een hack kunt oplossen, wil je eerst zeker weten dat je WordPress-site inderdaad gehackt is. Maar hoe kun je deze “diagnose” stellen? Ik zal nu uitleggen hoe je er achter komt of je WordPress-site inderdaad het doelwit is geweest van een hack.

Plotselinge daling in verkeer

Als je website gehackt is, dan hebben zoekmachines dit vaak vrij snel door. Je website linkt bijvoorbeeld naar allerlei onbetrouwbare (SPAM) websites. Zoekmachines (zoals Google) zullen je website dan direct verwijderen uit de zoekresultaten om te voorkomen dat gebruikers naar jouw site doorklikken.

Ook de browser van een gebruiker kan een waarschuwing laten zien als een gebruiker jouw gehackte website probeert te openen. Google Chrome doet dit bijvoorbeeld met een “Safe Browsing”-melding, waarbij de gebruiker gewaarschuwd wordt dat deze op “eigen risico” verder kan surfen. Doordat gebruikers een waarschuwing te zien krijgen, zullen ze een stuk minder snel geneigd zijn om jouw website te bezoeken.

Bij een hack kun je dus een plotselinge daling van het aantal bezoekers op je website waarnemen. Dit komt doordat browsers en zoekmachines hun gebruikers voor jouw website waarschuwen of ze simpelweg je site niet laten bezoeken.

Waarschuwing in je browser

Het kan natuurlijk ook zo zijn dat je zélf een melding krijgt in je browser als je je website probeert te bezoeken:

Waarschuwing in je browser

Dit is vaak een duidelijk signaal dat er iets mis is met de veiligheid van je website.

Rare teksten en/of links op je website

Verschijnen er opeens rare teksten met links in je content? Denk hierbij aan vreemde teksten die onderaan je pagina’s en/of berichten verschijnen. Of juist middenin je tekst.

Deze teksten zijn vaak niet Nederlands. Als ze in het Engels zijn dan zijn het vaak niet samenhangende verhalen maar korte, onzinnige teksten, puur gericht om links naar andere sites in op te nemen. Dit soort SPAM heet ook wel “SEO-SPAM”. Er is hier sprake van een soort “black hat”-techniek voor linkbuilding.

Het algoritme van Google bepaalt mede aan de hand van het aantal “backlinks” hoe hoog een website in de zoekresultaten moet verschijnen. Gehackte websites kunnen worden gebruikt om links te injecteren naar andere sites, met als doel om deze (tijdelijk) hoger in zoekmachines te pushen.

Lees ook: PageRank-algoritme (Wikipedia)

Google Safe Browsing

Google heeft een tool waarmee je als website-eigenaar kunt checken of jouw website als “veilig” wordt gezien. Deze tool vind je hier. Als ik mijn eigen website (wouterpostma.com) in deze tool invul, dan krijg ik het volgende resultaat:

Google Safe Browsing

Dit resultaat houdt in dat Google geen onveilige inhoud heeft gevonden op mijn website. Dit is geen garantie dat een website niet gehackt is, maar wel een handige indicatie.

Google Search Console-melding

Als je je website hebt aangemeld bij Google Search Console, dan kun je ook hier een melding krijgen als er malware op je website is gedetecteerd. Je ontvangt dan meestal ook een e-mail met een waarschuwing.

Google Search Console Security Issues

Goed om te weten: Google Search Console is een geweldige tool, maar detecteert niet alles. Als er géén melding te zien is (zoals in de screenshot hierboven), betekent dat niet automatisch dat er niets aan de hand is.

Je kunt niet meer inloggen

Misschien ligt deze heel erg voor de hand. Maar als je plots niet meer kunt inloggen in je WordPress-site, dan kan dit er op wijzen dat je site gehackt is en dat het wachtwoord van jouw WordPress-account door de hacker(s) veranderd is.

Je kunt je wachtwoord dan proberen te resetten, maar een slimme hacker zal ook het e-mailadres veranderd hebben. Een goede optie is dan om je wachtwoord te herstellen via phpMyAdmin. Dit is een onderdeel van het controlepaneel van je hosting, waarbij je direct in je MySQL-database kunt. Hier kun je gebruikers zien en ook wijzigen. Om dit te doen, adviseer ik je om dit artikel van wpbeginner.com te raadplegen: How to Reset a WordPress Password from phpMyAdmin.

Er zijn nieuwe accounts toegevoegd aan WordPress

Als je in WordPress naar het menu Users > All Users gaat, kun je controleren of deze lijst nog klopt. Staan er plotseling gebruikers tussen die je niet herkent, of die jij zelf niet hebt toegevoegd? Dan kan dit er op wijzen dat je website gehackt is of dat onbevoegde accounts toegang hebben tot je site.

Je kunt beginnen met het verwijderen van de accounts. Maar dan ben je er nog niet! De dieper liggende oorzaak wordt hiermee vaak niet opgelost. Je moet dus verder kijken. Lees dus zeker ook het onderdeel van dit artikel over oplossingen voor een gehackte WordPress-site.

Onbekende bestanden op je server

Als je opeens onbekende bestanden tegenkomt op je server, bijvoorbeeld als je inlogt met FTP, dan kunnen deze geplaatst zijn door een hacker. Dit betekent dat de hacker(s) ook de bestanden op je server kunnen plaatsen, wijzigen en inzien. Het kan nu verstandig zijn om nu een professional in te schakelen.

Een expert kan bijvoorbeeld jouw server vergelijken met een “schone” WordPress-installatie. Op die manier zie je snel met welke bestanden er gerommeld is.

Popups of advertenties

Een veel voorkomende indicatie van een gehackte (WordPress) site, zijn SPAM-advertenties en/of popups die je zelf niet geplaatst hebt. Vaak met 18+ inhoud of verwijzingen naar zulke websites (casino’s en/of andere 18+ inhoud).

Hackers doen dit vaak om geld te verdienen.

WordPress Core-bestanden zijn gewijzigd

Met de Sucuri-plugin kun je ontdekken of er wijzigingen zijn aangebracht in de Core-bestanden van WordPress. Sucuri is een bedrijf gespecialiseerd in het beveiligen van WordPress-sites én het herstellen van gehackte sites.

Sucuri biedt ook een gratis Sucuri Security-plugin aan. Met deze plugin kun je verschillende veiligheidsmaatregelen instellen voor je website. Ook kun je een scan uitvoeren om er achter te komen of de Core-bestanden van jouw WordPress-site nog intact zijn.

De WordPress Integrity-tool in de Sucuri-plugin controleert of je WordPress-bestanden zijn bewerkt.

Hierboven zie je een screenshot van de zogeheten WordPress Integrity-functie in de Sucuri-plugin. Deze functie controleert je WordPress-bestanden en checkt of er wijzigingen in zijn aangebracht.

Redirects

Het kan natuurlijk zo zijn dat je zelf redirects hebt gemaakt in WordPress. Maar als je bezoekers plotseling naar vreemde SPAM-websites (met bijvoorbeeld “18+ content”) worden omgeleid, dan wijst dit er duidelijk op dat er iets niet in de haak is.

Eén van de recente redirect hacks heeft betrekking op de domeinnaam specialadves[.]com. Dit is onderdeel van de zogeheten Balada Injector-hack, die gebruikmaakt van lekken in WordPress-themes en -plugins.

Vaak worden deze redirects gecreëerd door je .htaccess-bestand te bewerken of door middel van JavaScript die in je index.php-bestand is toegevoegd. In dit artikel van Sucuri wordt deze hack uitgebreider uitgelegd.

Plotseling is je website heel langzaam

Als je een goede hostingpartij gebruikt, zoals Cloud86, dan is je website normaliter waarschijnlijk heel snel. Als je opeens merkt dat je website een stuk langzamer wordt, dan kan dit betekenen dat er een hack heeft plaatsgevonden.

Hackers gebruiken vaak scripts om SPAM in je website te injecteren. Deze scripts zijn vaak gebouwd met JavaScript, en gebruiken een hoop data. Vaak wordt er ook data ingeladen vanuit andere websites/servers. En meestal staan die niet in Europa. Dit maakt je pagina’s groter en dus moet je browser meer MB’s downloaden om je website te tonen. Dit maakt je website dus langzamer.

Een langzamere website is niet altijd een indicatie van een hack. Het kan ook zo zijn dat je een langzame plugin hebt geïnstalleerd, een slechte hostingpartij gebruikt óf bijvoorbeeld te grote afbeeldingen op je website plaatst.

Je hostingpartij heeft je benaderd

Als je een goede hostingpartij gebruikt zoals Cloud86, dan monitoren zij hun servers pro-actief. Dit houdt in dat verdachte activiteit sneller wordt opgemerkt doordat deze hostingpartijen hun servers goed scannen en monitoren. De hostingpartij zal dan contact met je opnemen en je vragen hier naar te kijken. Vaak kun je je hostingaanbieder hierbij ook om hulp vragen. Hier hangt vaak natuurlijk een prijskaartje aan. Het kan ook dat je een SLA met je hostingpartij hebt afgesloten, over het voorkomen en/of oplossen van hacks op je website.

Oplossingen voor een gehackte WordPress-site

Om een hack in WordPress op te lossen, heb je vaak wat technische kennis nodig. Ik adviseer dan ook om niet zelf dingen te proberen maar om een professional in te schakelen. Je hostingpartij is hierbij bijvoorbeeld een goede optie.

Ook de persoon die je website gebouwd heeft kan waarschijnlijk ondersteunen. Hoewel, bedenk je wel kritisch dat je website niet zomaar gehackt is. Komt dit door je eigen actie(s)? Bijvoorbeeld doordat je op eigen houtje plugins en themes hebt geïnstalleerd waar een lek in zit? Of heeft de bouwer van je website hier ook een verantwoordelijkheid? Het kan geen kwaad om hier wat kritische vragen over te stellen.

Neem contact op met je hostingpartij

Je hostingpartij heeft het beste zicht op welke onderdelen van je website getroffen zijn door een hack. Het kan wel zo zijn dat je hostingpartij hier geld voor rekent. Dat is niet gek, want je betaalt meestal alléén voor hosting. Wil je meer, dan zullen ze hier dus terecht een uurtarief voor rekenen.

Alleen als je gebruikmaakt van zogeheten “Managed Hosting”, dan zou het kunnen dat dit soort support inbegrepen is bij je hosting. Zoek dit goed uit, want het kan nogal verschil maken voor je portemonnee :-).

Een backup terugzetten

Als je website gehackt is, kun je beginnen met het terugzetten van een backup van vóórdat je website gehackt werd. Daarna is het belangrijk om alle wachtwoorden te resetten, en de verschillende gebruikers/accounts op je site kritisch onder de loep te nemen. Ook moet je al je plugins, themes en WordPress zelf updaten naar de laatste versie.

Nu kan het natuurlijk dat je niet precies weet wanneer je website gehackt werd. In dat geval kun je het beste een professional inschakelen die met 100% zekerheid een hack kan herkennen én herstellen.

Na het terugzetten van de backup, moet je ook al je wachtwoorden veranderen. Niet alleen die van WordPress, maar ook die van je controlepaneel en je MySQL-database. Als je het wachtwoord van je database verandert, zul je dit ook moeten aanpassen in het wp-config.php bestand. Doe je dit niet, dan verliest WordPress de connectie met je database. Je krijgt dan de foutmelding “Error establishing a database connection” in WordPress.

Secret keys updaten

Ook het updaten van de secret keys na een hack is belangrijk. Deze rij willekeurige tekens bevindt zich in het wp-config.php bestand. Dit onderdeel van het bestand ziet er als volgt uit:

define('AUTH_KEY',         '9ui=I=).D(F3+Md|R)x.#+Hkhn!/;(W K[,?C/RtGWg>!uhYx+#%zeV_ ]~)(AaR');
define('SECURE_AUTH_KEY',  'W}v0#vdqTSgq+r7/<.m1~6IFOUP[ROkLa+3j@@kFNJ6pLv$8)CR >284Rloe5YQS');
define('LOGGED_IN_KEY',    'W+Pxidc6Vu4m6uEx2VCMe@|#,Th]*v*_&nTJw.M[{dYch%A~C?9A|=dYsCum0hER');
define('NONCE_KEY',        'M)Z1(XeU46)`z:9|b-9IS3g1o+Qpv[0FUX,a9 %_||n4^Mj,t99[k1./% r%=~fn');
define('AUTH_SALT',        '#w2.A2@d[)Mt|V,U#U-HV2:ik9+1B0&wkd 754_d$;=JO.]HXIK,+6LC+bJ#?wKS');
define('SECURE_AUTH_SALT', 'cUU&{Jv1ND#}@wmuE7|BBN0|9DMT{&tD`h-f`6t?].T]YFLL9_>wUnco3WNyW$q-');
define('LOGGED_IN_SALT',   'xR_$|%pwNJ[OVbcP=;0E?y@ A|uv!J_Wc?qn->%[s5xy~z?yL}/o~,dO&i>=@m.m');
define('NONCE_SALT',       'q9=-,cBW[c^QC)h(]XUjH{X@7E@8V.R{vxw-S}f;z#ANV5eYhA^xRi4D|7C{jFt6');

Om deze reeks te verversen, kun je via deze link een nieuwe willekeurige reeks aanvragen. Je kunt deze kopiëren en simpelweg plakken op de plek waar je huidige secret keys staan.

Meer lezen? Bekijk dan ook eens: What Are WordPress Salts and Why You Should Use Them (Hostinger.com)

Je database-wachtwoord veranderen

Om je database-wachtwoord te veranderen, kun je het beste het controlepaneel van je hostingpartij benaderen, bijvoorbeeld DirectAdmin. Hier kun je je database opzoeken en dan het wachtwoord van de gebruiker wijzigen. Je kunt ook de gebruikersnaam zelf veranderen.

Let op: Als je deze wijziging hebt gemaakt, verliest je WordPress-site de verbinding met de database. Om dit te verhelpen, moet je de nieuwe gebruikersnaam en wachtwoord óók aanpassen in het wp-config bestand. Dat ziet er als volgt uit:

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );

/** Database username */
define( 'DB_USER', 'username_here' );

/** Database password */
define( 'DB_PASSWORD', 'password_here' );

Je databasenaam vul je in waar database_name_here staat. Je gebruikersnaam komt op de plek username_here en je wachtwoord waar nu password_here staat.

Malware verwijderen

Als je je website hebt gescand met behulp van Sucuri en hun gratis plugin, dan kan deze plugin eventuele malware ook voor je verwijderen. Of in ieder geval vertellen welke bestanden door malware getroffen zijn. Deze bestanden kun je dan vervangen met een “clean” bestand dat je downloadt van WordPress.org. Als bijvoorbeeld je index.php-bestand geïnfecteerd is, dan kun je WordPress downloaden en het index.php-bestand overschrijven met de “schone” versie van WordPress.org.

Mocht de plugin de malware niet kunnen vinden, dan kun je ook je WordPress-bestanden allemaal vervangen met een schone installatie. Maak wel eerst een backup van je website voordat je dit doet.

Gebruikers (en hun e-mailadressen) controleren

Een essentiële stap bij het verhelpen van een hack is om te controleren welke gebruikers er actief zijn op je WordPresss-site. Dit menu vind je onder Gebruikers > Alle gebruikers in WordPress.

Ga deze lijst na en controleer of al deze gebruikers wel door jou zijn aangemaakt en of ze niet teveel rechten hebben. Bijvoorbeeld, iemand die teksten voor je schrijft hoeft geen “Beheerder”-rol te hebben op je WordPress-site.

Verwijder eventuele gebruikers die niet op je site thuishoren en wijzig eventueel alle inactieve gebruikers naar een rol die weinig rechten geeft (zoals de “Abonnee” rol).

Alle wachtwoorden veranderen

Alle wachtwoorden veranderen. Maar dan ook écht alle wachtwoorden! Het gaat dan (minstens) om de volgende wachtwoorden:

  • Het wachtwoord dat je gebruikt om in te loggen bij je hostingpartij.
  • Je wachtwoord van de WordPress-admin én de wachtwoorden van alle andere gebruikers op je WordPress-site.
  • Het wachtwoord van je MySQL-database.
  • Je FTP-wachtwoord en het wachtwoord van je controlepaneel (zoals DirectAdmin of Plesk).
  • Zijn er nog andere gebruikers met FTP- of controlepaneel-toegang? Dan ook die wachtwoorden resetten.

Zo weet je zeker dat een eventuele gekraakt wachtwoord niet meer gebruikt kan worden om je WordPress-site te bewerken.

Je site scannen met een security plugin

De Sucuri-plugin voor WordPress

Ik heb het al eerder gezegd, maar er zijn hele goede security plugins voor WordPress, die je website ook kunnen scannen op malware en/of infecties. Ik gebruik zelf bijvoorbeeld vaak Sucuri.

Deze plugin kun je gratis installeren en met de onbetaalde versie kun je een aantal dingen doen. Wil je meer, dan kun je ook een Sucuri-abonnement nemen. De gratis versie scant je website in ieder geval voor de meest voorkomende SPAM, zoals SEO-SPAM en verdachte JavaScripts. Als je het Sucuri-menu opent in WordPress, krijg je direct te zien of er zulke zaken gevonden zijn:

Sucuri site is clean
De site op deze screenshot is “clean”

Ook checkt Sucuri automatisch of je site ge-blocklist is bij één van de grote namen, zoals Google, McAfee en meer:

Sucuri blocklist
De site op deze screenshot is niet op een blocklist gevonden

Sucuri geeft het ook aan als er Core-bestanden zijn gevonden die bewerkt zijn. Hierbij worden de bestanden vergeleken met een “clean” installatie van WordPress. De uitkomst zie je direct bovenin het Sucuri-scherm. De onderstaande melding betekent dat er Core-bestanden aangepast zijn:

Sucuri WordPress Core check
Sucuri geeft aan dat er Core-bestanden zijn aangepast

Soms is deze melding onschuldig. Bijvoorbeeld als er nog een bestand van je hosting op je server staat, dat niet bij WordPress hoort, zoals index.html, dan kan Sucuri dit melden. Dit kan meestal geen kwaad, maar je kunt het voor de zekerheid verwijderen. De melding zal er dan zo uit zien:

All Core WordPress Files Are Correct Sucuri plugin WordPress
“All Core WordPress Files Are Correct”

Dit betekent dat er in ieder geval niet met de Core-bestanden van je WordPress-installatie is gerommeld. Dan weet je dat je verder kunt gaan zoeken. Bijvoorbeeld in je themes of plugins.

WordPress hacks voorkomen

Zodra de hack op je WordPress-website is opgelost, wil je natuurlijk graag voorkomen dat je site in het vervolg nóg een keer gehackt kan worden. Voorkomen is beter dan genezen. En vaak ook makkelijker. Een reeks vrij simpele maatregelen kan ervoor zorgen dat de kans op een hack vele malen kleiner wordt.

Hoe ga je te werk?

Verhuis naar een betrouwbare hostingpartij

Het begint allemaal met een hostingpartij die je kunt vertrouwen. Ga niet voor goedkoop, maar voor goed. Dit hoeft niet per se duur te zijn. Ik zelf host al mijn websites bij Cloud86 en kan deze partij van harte aanbevelen, vooral ook voor WordPress-sites.

Cloud86 hostingpartij

Een goede hostingpartij scant je server voortdurend voor malware en/of verdachte activiteit. Wordt er iets opgemerkt? Dan zal de hostingpartij contact met je opnemen. Een slechte hostingpartij monitort/scant helemaal niet en laat je dus – vaak ongemerkt – met een hack zitten die je zelf misschien niet eens door hebt.

Een andere hosting-provider waar ik goede ervaringen mee heb is Savvii. Zij zijn gespecialiseerd in WordPress hosting en ik heb er jarenlang websites gehost, zonder ooit problemen te hebben gehad.

Laat je website bouwen door een expert

Laat je website bouwen door iemand die weet wat hij of zij doet. En niet door je neef die het voor drie tientjes doet. Of door een hobbyist.

Een expert installeert niet zomaar een plugin of theme, en een expert zal ook de basismaatregelen nemen voor de security van je site.

Laat je website niet alleen bouwen maar ook onderhouden door een expert. Of doe het zelf, maar zorg dat je hier pro-actief in bent. Installeer dus regelmatig updates voor WordPress, themes en plugins. En zorg dat er backups worden gemaakt. Natuurlijk, een goede hostingpartij zoals Cloud86 of Savvii doet dit automatisch.

Zorg voor automatische backups

Automatische backups zijn belangrijk. Zo weet je zeker dat er een versie wordt bewaard van je website vóórdat deze gehackt en dus geïnfecteerd wordt. De hack oplossen is dan een stuk makkelijker. Je kunt simpelweg een backup terugzetten en dan al je wachtwoorden aanpassen. Dit is een stuk minder werk dan wanneer je een hack moet oplossen zonder dat je ene backup beschikbaar hebt.

Gelukkig maakt een goede hostingpartij automatisch backups van je website. Mijn hostingpartijen (Cloud86 en Savvii) doen dit in ieder geval wel.

Je kunt ook zelf zorgen voor automatische backups, bijvoorbeeld naar Google Drive. Lees ook: Automatische backups van je WordPress-site naar Google Drive.

Update WordPress, themes en plugins regelmatig (automatisch)

Als er een kwetsbaarheid is gevonden in WordPress of in een theme of plugin, dan zal de ontwikkelaar meestal een update uitbrengen. In de update wordt het lek dan gedicht.

Installeer jij deze updates niet, dan is je website dus kwetsbaar voor hacks die gebruikmaken van de kwetsbaarheid. Vaak hoeft een hacker niet zelf jouw website te bezoeken om hier achter te komen. Ze gebruiken een script dat automatisch WordPress-sites langsgaat en kijkt of dit lek kan worden uitgebuit. Het is dus niet zo dat jouw website specifiek doelwit hoeft te zijn.

Een kleine, onbeduidende website is dus niet per se minder kwetsbaar dan een grote website met veel bezoekers.

Zorg daarom dat je altijd de laatste updates installeert. Dit kun je vaak ook automatisch laten inregelen door je hosting.

Wees voorzichtig met themes en plugins

Behalve zorgen dat je altijd de laatste versie van themes en plugins gebruikt, is het belangrijk om niet zomaar elke plugin te installeren.

Niet iedere ontwikkelaar neemt het even nauw met de beveiliging van hun themes of plugins. En ook hun reactiesnelheid als er wél een lek is gevonden, verschilt nogal.

Het is een goed idee om gebruik te maken van de officiële theme directory van WordPress óf om een premium theme te gebruiken. Zelf adviseer ik vaak het Divi theme van Elegant Themes. Dit soort theme-bouwers hebben zoveel betalende klanten dat ze hun themes wel up-to-date moeten houden. Vaak zit er dan ook een heel team achter zo’n theme. Dat is een geruststellende gedachte als jouw website er gebruik van maakt.

Maak gebruik van SSL

HTTPS

Een website met een geldig SSL-certificaat is tegenwoordig bijna standaard. De meeste hosting-partijen bieden een gratis SSL-certificaat van Let’s Encrypt aan.

Een geldig SSL-certificaat zorgt ervoor dat alle verkeer jouw site bezoekt met een HTTPS-verbinding. HTTP staat voor HyperText Transfer Protocol. HTTPS staat voor HyperText Transfer Protocol Secure. Dit heeft te maken met het feit dat HTTPS alles versleutelt. Dat zorgt ervoor dat dingen als wachtwoorden die ingevuld worden, versleuteld worden en dus veel moeilijker te achterhalen zijn voor bijvoorbeeld hackers.

Werp een kritische blik op gebruikersnamen en wachtwoorden op je site

Kijk een kritisch naar de gebruikersnamen van je WordPress-gebruikers. Zitten hier makkelijk te raden gebruikersnamen tussen, zoals “admin“? Verander deze gebruikersnamen dan naar iets dat moeilijker te raden en/of achterhalen is. Zie een gebruikersnaam als een soort tweede wachtwoord. Hoe moeilijker deze te raden is, hoe beter.

Zie ook: Je WordPress gebruikersnaam aanpassen

“Limit Login Attempts”

Een zeer populaire plugin voor WordPress is Limit Login Attempts. Deze plugin installeer ik standaard op al mijn WordPress-sites.

Limit Login Attempts Reloaded
Limit Login Attempts Reloaded

Als iemand met hetzelfde IP-adres drie keer zonder succes probeert in te loggen, dan wordt dat IP-adres voor een bepaalde tijd geweerd om in te loggen. Deze IP-adressen worden bewaard in een cloud waar alle websites gebruik van kunnen maken. Zo kunnen verdachte IP-adressen al geweerd worden vóórdat ze proberen je site te kraken.

De plugin is met één klik geïnstalleerd, en zorgt direct voor een extra laag beveiliging op je site. Zeker de moeite waard dus.

Verander de database prefix van WordPress

De standaard database-tabel van een WordPress-website begint met “wp_“. Dit noemen ze ook wel de database prefix. Natuurlijk is de prefix “wp” daarom ook heel erg voorspelbaar. Wil je hackers te slim af zijn, dan wil je natuurlijk zo min mogelijk voorspelbaar zijn. Daarom raden veel security-experts aan om de prefix van je WordPress-database te wijzigen naar iets anders dan de standaard prefix.

Hoe je dit doet, lees je hier: How To Change the WordPress Table Prefix (Kinsta.com)

Blokkeer het bewerken van plugins en themes vanuit WordPress

Standaard WordPress-installaties staan beheerders toe om bestanden van hun themes en plugins te bewerken vanuit de admin-omgeving van WordPress zelf. Je wil natuurlijk niet dat een hacker hier toegang toe heeft, mocht je website gehackt worden.

Daarom raad ik aan om plugins en themes niet te laten bewerken via de admin-omgeving van WordPress. Je kunt simpelweg het volgende stukje code aan je wp-config.php bestand toevoegen om te zorgen dat dit niet meer werkt:

define( 'DISALLOW_FILE_EDIT', true );

Laat alleen specifieke IP’s inloggen

Als je altijd hetzelfde netwerk gebruikt om op je website in te loggen, dan kun je eventueel met behulp van je .htaccess-bestand de toegang beperken to specifieke IP-adressen.

Je blokkeert dan eigenlijk iedereen met een ander IP-adres om /wp-admin of /wp-login te benaderen. Dit doe je als volgt:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR} !^123.456.78.90$
RewriteRule ^(.*)$ - [R=403,L]
</IfModule>

In het bovenstaande voorbeeld kan alleen iemand met het IP-adres 123.456.78.90 de /wp-admin of /wp-login benaderen.

Het nadeel hiervan is dat je je website alleen kunt bewerken als je thuis bent en niet als je op pad bent. Of je moet steeds als je een nieuw IP-adres gebruikt je .htaccess-bestand aanpassen.

Deze maatregel is dus vrij extreem, maar uitermate effectief.

Two Factor Authentication

Google Authenticator App
Google Authenticator App

Je kunt ook zorgen dat gebruikers een tweevoudige authenticatie meoten doen om in te loggen op je WordPress-site. Dit is een maatregel waar steeds meer websites gebruik van maken.

Er zijn verschillende plugins die Two Factor Authentication toevoegen aan je WordPress-site. De bekendste is waarschijnlijk Google Authenticator. Gebruikers hebben dan de Google Authenticator-app op hun telefoon nodig om te kunnen inloggen. Deze is beschikbaar voor iOS en Android.

Je voegt zo een extra laag beveiliging toe aan je site. Zelfs met het juiste wachtwoord en gebruikersnaam, kun je niet meer zomaar inloggen. Er zit een extra stap waarbij de gebruiker de login moet goedkeuren in de mobiele app.

Switch naar een recente PHP-versie

Gebruik je een recente versie van PHP? Als je gebruikmaakt van PHP 8, en dan vooral de nieuwste versies zoals 8.2 of 8.3, dan heeft dit ook voordelen voor de security van je WordPress-site.

PHP 8 en WordPress

Moet ik een hack melden bij instanties?

Als je website gehackt is, dan kan het zo zijn dat je dit moet melden bij de instanties. Vooral als er persoonsgegevens buit kunnen worden gemaakt, dan is het verplicht dat je dit meldt bij de Autoriteit Persoonsgegevens. Ook moet je de personen op de hoogte brengen.

Nauwkeurige informatie over dit onderwerp vind je op de website van de Autoriteit Persoonsgegevens (AP): Datalek: wel of niet melden (Autoriteit Persoonsgegevens).

In de AVG (Algemene verordening gegevensbescherming), ook wel bekend als de GDPR, staat dat je verplicht bent om een datalek te melden. Dit geldt niet als het onwaarschijnlijk is dat een datalek risico’s oplevert voor de rechten en vrijheden van betrokkenen. Bijvoorbeeld de klanten in je webshop. Als dit risico er wel is, dan moet je personen op de hoogte brengen.

Je moet een risico-inschatting maken. Een voornaam en een e-mailadres leveren niet direct enorme risico’s op. Maar bijvoorbeeld medische gegevens zijn zeer gevoelige persoonlijke informatie.

Is WordPress veilig?

Veel mensen denken dat WordPress onveilig is, omdat ze hebben gehoord over een gehackte website. Door het enorme marktaandeel van WordPress is het logisch dat veel websites die gehackt worden, gebruik maken van WordPress. WordPress is echter een veilig systeem. Veelal zijn het plugins en themes die al jaren niet geüpdatet zijn die een lek veroorzaken. Of de gebruiker die geen updates installeert. Een kwetsbaarheid in de Core van WordPress wordt namelijk meestal snel opgelost.

WordPress is zo veilig als haar gebruikers

Er werkt een enorm team van developers en cybersecurity-specialisten mee aan de ontwikkeling van WordPress. Je kunt er dus op vertrouwen dat zij er alles aan zullen doen om een veilig systeem op te leveren. En als er wél een keer een lek in WordPress zit, dan kun je er vanuit gaan dat deze snel wordt opgemerkt en vervolgens gedicht.

Net als andere software, wordt WordPress gebouwd en gebruikt door mensen. En mensen maken fouten.

WordPress wordt gebouwd en gebruikt door mensen, en mensen maken fouten.

Als je als gebruiker niet investeert in het beveiligen van je WordPress-site, of als je dit simpelweg niet serieus (genoeg) neemt, dan loop je het risico dat je site gehackt wordt.

Zie het als de beveiliging van een huis. Je kan een geweldig alarmsysteem en dubbele sloten op je deuren installeren. Maar als jij een deur of een raam wagenwijd open zet, kunnen er alsnog mensen binnenkomen.

WordPress is open source

WordPress is open source. Dit betekent dat iedereen de broncode van WordPress kan (her)gebruiken en aanpassen aan hun wensen. Dit biedt veel voordelen.

Dankzij het open source-model van WordPress, is er een enorme community actief van developers (en hobbyisten) die speciale themes en plugins voor WordPress beschikbaar maken. Vaak zijn deze gratis te downloaden en gebruiken voor je site. Maar veel van deze ontwikkelaars bieden geen enkele garantie dat hun themes en plugins regelmatig geüpdatet worden. Laat staan dat ze zich houden aan de richtlijnen als het gaat om veiligheid.

“Due diligence” bij Themes en Plugins

Als je een plugin bekijkt op WordPress.org, zie je vaak hoeveel actieve installaties deze heeft, met hoeveel sterren de plugin beoordeeld wordt én of deze getest is met de laatste versie van WordPress. Dit geeft een idee in hoeverre de plugin op een serieuze manier onderhouden wordt door de ontwikkelaar. Kijk bijvoorbeeld eens naar de Yoast SEO-plugin:

Plugin op WordPress.org
Een plugin op WordPress.org met 10+ miljoen actieve installaties én getest met de laatste versie van WordPress.

In dit geval kun je er vanuit gaan dat deze plugin goed in elkaar zit.

Heel veel themes en plugins zitten – net als Yoast SEO – gelukkig heel goed in elkaar én worden regelmatig geüpdatet. Maar er zitten ook uitzonderingen tussen. Door goed op te letten bij het installeren van themes en plugins kun je jezelf en je website beschermen.

Tot slot

WordPress is over het algemeen een veilig systeem, maar door menselijk handelen kan er ook in dit CMS iets misgaan met de beveiliging. Neem jij de beveiliging van je site niet serieus, of kies je voor een goedkopere hostingpartij, dan is het vaak vragen om problemen.

Voorkomen is beter dan genezen. Daarom adviseer ik om de nodige tijd te investeren in het beveiligen van je WordPress-site. En om gebruik te maken van een betrouwbare hostingpartij zoals Cloud86. Als je hulp nodig hebt met het implementeren van de adviezen die ik in dit artikel geef, kun je mij natuurlijk ook contacteren :-).

Verwerkt jouw website persoonsgegevens? Als je bijvoorbeeld een webshop hebt, dan is de kans groot dat het antwoord op deze vraag “Ja” is. In dat geval zul je een hack vaak ook moeten melden bij de Autoriteit Persoonsgegevens. Ook daarover heb ik in dit artikel het nodige verteld.

Wouter Postma
Wouter Postma

Hi! Ik ben Wouter Postma. Ik ben gespecialiseerd in online marketing en werk al heel lang met WordPress. Op deze website schrijf ik blogs over mijn ervaringen en deel ik tips & tricks.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *