Ga naar inhoud

De complete gids voor WordPress beveiliging

Gepubliceerd op 11 December 2025

# De complete gids voor WordPress beveiliging WordPress beveiligt zichzelf niet. Dat is jouw job. En die job is belangrijker dan ooit. In 2024 zijn er 7.966 kwetsbaarheden ontdekt in WordPress websites. Niet omdat WordPress core onveilig is, maar omdat 90% van alle beveiligingsproblemen zich voordoet in plugins en themes van derden. Je WordPress site is een doelwit simpelweg omdat het WordPress is. Hackers scannen het internet met geautomatiseerde tools, op zoek naar sites met bekende kwetsbaarheden. Ze hoeven je niet persoonlijk te kennen om je site te compromitteren. Een gehackte website betekent downtime, verloren omzet, reputatieschade en in het ergste geval een Google blacklist die maanden kan duren. De gemiddelde kosten van een hack liggen tussen de €500 en €5.000, afhankelijk van de schade en hoe snel je het ontdekt. Maar hier is het goede nieuws: met de juiste beveiligingslagen kun je 99% van alle aanvallen stoppen voordat ze schade aanrichten. WordPress security is geen eenmalige actie, maar een set van gewoontes en lagen die elkaar versterken. In deze gids leer je stap voor stap hoe je je WordPress site hardens tegen aanvallen, van de basis tot geavanceerde technieken. We beginnen bij het fundament: backups. Want zelfs met alle beveiligingsmaatregelen kan er altijd iets misgaan. En dan wil je binnen een uur terug online zijn, niet binnen een week. ## De security mindset: defense in depth WordPress beveiliging is geen checklist die je eenmalig afvinkt. Het is een set van lagen die elkaar versterken. Als één laag faalt, vangt de volgende laag het op. Dit concept heet defense in depth, en het is de kern van elke solide security strategie. Denk aan je WordPress site als een huis. Je sluit niet alleen de voordeur op, je installeert ook een alarm, camerabewaking, bewegingssensoren en misschien zelfs een hond. Elke laag maakt het moeilijker voor een inbreker om binnen te komen. Hackers werken hetzelfde: ze proberen de makkelijkste weg naar binnen. Als die er niet is, geven de meesten het op en gaan ze naar een ander doelwit. Hier zijn de belangrijkste beveiligingslagen die we in deze gids opbouwen: **Laag 1: Backups** - Je laatste redmiddel als alles misgaat. Een goede backup betekent dat je binnen een uur weer online bent na een hack. Zonder backup ben je maanden bezig met recovery, als het überhaupt lukt. **Laag 2: Updates** - De eerste verdedigingslinie. Verreweg de meeste hacks exploiteren bekende kwetsbaarheden waarvoor al maanden een update beschikbaar is. Door bij te blijven met updates, sluit je 70% van alle aanvalsvectoren. **Laag 3: Toegangscontrole** - Beperk wie er binnen kan komen. Two-factor authentication, sterke wachtwoorden en login limiting maken brute force aanvallen praktisch onmogelijk. **Laag 4: Hardening** - Versterk je WordPress configuratie. Verberg versienummers, bescherm je wp-config.php, zet onnodige functies uit. Maak het hackers zo moeilijk mogelijk. **Laag 5: Firewall** - Filter kwaadaardig verkeer voordat het je server bereikt. Een goede Web Application Firewall (WAF) blokkeert bekende aanvalspatronen automatisch. **Laag 6: Monitoring** - Detecteer verdachte activiteit voordat het escaleert. Malware scans, activity logs en file integrity monitoring geven je early warning signals. Geen enkele laag is 100% waterdicht. Maar samen vormen ze een systeem dat de overgrote meerderheid van aanvallen stopt. Laten we beginnen met de allerbelangrijkste laag: backups. ## Backups: je laatste redmiddel Backups zijn niet sexy. Ze kosten tijd en geld en je hoopt ze nooit nodig te hebben. Tot het moment dat je ze wél nodig hebt, en dan zijn ze onbetaalbaar. Een backup is je ultimate failsafe. Server down? Restore de backup. Site gehackt? Restore de backup. Database corrupt? Restore de backup. Een goede backup strategie betekent dat geen enkele ramp permanent is. Je bent binnen een uur weer online, niet binnen een week. De **3-2-1 backup regel** is de gouden standaard: - **3 kopieën** van je data (origineel + 2 backups) - **2 verschillende media** (bijvoorbeeld server + cloud storage) - **1 kopie offsite** (niet op dezelfde server als je website) Voor WordPress betekent dit concreet: **Wat moet je backuppen?** - Alle WordPress bestanden (wp-content/themes, plugins, uploads) - De volledige database (posts, pagina's, instellingen, users) - .htaccess en wp-config.php bestanden **Hoe vaak backuppen?** - **Dagelijks** als je content toevoegt of wijzigt - **Voor elke update** van WordPress, themes of plugins - **Wekelijks** voor statische websites zonder veel wijzigingen - **Real-time** voor webshops of membership sites (transactionele data) **Waar bewaar je backups?** - Minimaal één kopie op externe cloud storage (Google Drive, Dropbox, Amazon S3) - Nooit alleen lokaal op dezelfde server als je website - Test je backups regelmatig door een restore te doen op een staging omgeving ### Backup plugins: de praktische keuze Handmatig backuppen via FTP en phpMyAdmin is mogelijk maar foutgevoelig. Backup plugins automatiseren het proces en verkleinen de kans op menselijke fouten. **UpdraftPlus** (gratis + premium vanaf €70/jaar) - Meest populaire backup plugin (3+ miljoen actieve installaties) - Automatische backups naar Google Drive, Dropbox, Amazon S3 - Restore direct vanuit WordPress admin - Gratis versie is prima voor 90% van de websites - Premium toevoegt incremental backups en support **BackupBuddy** (€80-€199/jaar) - Complete backup + migratie tool in één - BackupBuddy Stash cloud storage inbegrepen - Real-time database backups (premium) - Malware scanning en repair functies - Iets duurder maar zeer compleet **BlogVault** (€99-€249/jaar) - Offsite backups (niet op je eigen server) - Dagelijkse automatische backups met 90 dagen retentie - Staging omgeving voor testen inbegrepen - 1-klik restore met nul downtime - Ideaal voor agencies met meerdere sites **Jetpack Backup** (€4,95-€41,65/mnd) - Real-time backups bij elke wijziging - Automatische restore in 1 klik - Geïntegreerd met andere Jetpack security features - Duurder maar extreem gebruiksvriendelijk Mijn aanbeveling voor 90% van de websites: begin met **UpdraftPlus gratis** en upgrade naar premium als je incremental backups of prioriteit support nodig hebt. Stel dagelijkse backups in naar Google Drive of Dropbox, en test minimaal één keer per maand of je backup echt werkt door een restore te doen. **Pro tip:** Sommige hosting providers zoals [TransIP](https://www.transip.nl), Antagonist en Vimexx bieden automatische daily backups als onderdeel van je hosting pakket. Check of je host dit aanbiedt voordat je een betaalde backup plugin koopt. Maar vertrouw nooit uitsluitend op backups van je host, zorg altijd voor een tweede externe backup. ## Updates: je eerste verdedigingslinie Hier is de ongemakkelijke waarheid: **70% van alle gehackte WordPress sites had een beveiligingsupdate beschikbaar op het moment van de hack**. De meeste hacks zijn niet geavanceerd. Het zijn bots die bekende kwetsbaarheden exploiteren in verouderde plugins en themes. Updates zijn je eerste en belangrijkste verdedigingslinie. Maar updaten zonder strategie kan ook misgaan, wat downtime en kapotte functionaliteit betekent. Hier is hoe je het goed doet. ### Wat moet je updaten? **WordPress Core** - Major releases (6.4 → 6.5) brengen nieuwe features maar ook breaking changes. Minor releases (6.4.1 → 6.4.2) zijn security patches die je direct moet installeren. WordPress pusht security updates automatisch, maar controleer regelmatig handmatig. **Plugins** - 90% van alle kwetsbaarheden zit in plugins. Verwijder plugins die je niet gebruikt. Update actieve plugins binnen een week na release. Plugins zonder updates in 12+ maanden zijn abandoned en vormen een security risk. **Themes** - Ook themes kunnen kwetsbaarheden bevatten. Update je actieve theme zodra er een update beschikbaar is. Verwijder ongebruikte themes volledig. **PHP versie** - Verouderde PHP versies krijgen geen security patches meer. Draai minimaal PHP 8.0, liefst 8.1 of hoger. Check je huidige versie via Site Health in WordPress. ### Update strategie **Voor kleine websites:** 1. Maak eerst een backup 2. Update WordPress Core 3. Update plugins één voor één 4. Test na elke update of je site nog werkt 5. Bij problemen: restore backup en troubleshoot **Voor kritische websites:** 1. Maak een [staging omgeving](/nl/kennisbank/wordpress-staging-omgeving) 2. Test alle updates eerst op staging 3. Als alles werkt: push naar productie 4. Houd een backup ready voor rollback ### Auto-updates: wel of niet? WordPress heeft automatische updates voor core security releases. Mijn advies: **Wél auto-updates voor:** - WordPress Core security patches (standaard aan, laat dit zo) - Plugins van gerenommeerde developers (Yoast, WooCommerce) - Kleine security patches **Géén auto-updates voor:** - Major WordPress releases (test eerst) - Page builders (Elementor, Divi) die breaking changes kunnen hebben - Plugins die direct betaalfunctionaliteit raken Je kunt per plugin auto-updates in/uitschakelen in de WordPress 5.5+ admin. Gebruik dit met verstand. **Pro tip:** Gebruik een monitoring tool zoals [ManageWP](https://managewp.com) of [MainWP](https://mainwp.com) om updates op meerdere sites centraal te beheren en te testen. Dit bespaart enorm veel tijd als je 5+ sites beheert. ## Login beveiliging: de voordeur op slot De login pagina is de makkelijkste weg naar binnen voor hackers. En de standaard wp-login.php URL adverteert letterlijk waar die weg is. Login beveiliging is laag 3 van je defense in depth strategie en het heeft de hoogste ROI van alle security maatregelen. Hier zijn de belangrijkste tactieken om je login te beveiligen, van must-have tot nice-to-have. ### Two-Factor Authentication (2FA) Dit is de single biggest win voor login security. Met 2FA heb je twee dingen nodig om in te loggen: je wachtwoord (iets wat je weet) én een tijdelijke code van je telefoon (iets wat je hebt). Zelfs als een hacker je wachtwoord heeft, komen ze er niet in zonder die tweede factor. **Wordfence Login Security** (gratis) - 2FA via authenticator app (Google Authenticator, Authy) - TOTP standaard (Time-based One-Time Password) - XML-RPC protection inbegrepen - Login attempt limiting **Two-Factor** plugin (gratis) - Lightweight en open source - Ondersteuning voor email codes en authenticator apps - Backup codes voor als je telefoon kwijt is **iThemes Security Pro** (€80/jaar) - 2FA is onderdeel van bredere security suite - Meerdere 2FA methoden (app, email, backup codes) - Passwordless login voor extra gemak Mijn aanbeveling: installeer **Wordfence Login Security** (gratis) en forceer 2FA voor alle admin en editor accounts. Het kost 5 minuten setup en stopt 99% van brute force aanvallen. ### Login attempt limiting Brute force aanvallen proberen duizenden wachtwoord combinaties in korte tijd. Login limiting zet een limiet op het aantal mislukte login pogingen voordat een IP adres tijdelijk geblokkeerd wordt. **Limit Login Attempts Reloaded** (gratis) - Blokkeer IP na X mislukte pogingen - Instelbare blokkade duur (20 min tot 24 uur) - Email notificaties bij herhaalde pogingen - Whitelist voor je eigen IP **Wordfence** (gratis + premium) - Agressievere blocking met threat intelligence database - Detecteert known attacker IPs voordat ze proberen in te loggen - Real-time IP blocking Stel in: **4 pogingen, daarna 20 minuten blokkade**. Bij herhaalde pogingen: 24 uur blokkade. Dit stopt geautomatiseerde brute force volledig. ### Username security De standaard admin username adverteert dat je admin bent. Hackers hoeven dan alleen je wachtwoord te kraken, niet je username. **Verander je admin username:** 1. Maak een nieuwe admin user met een unieke username (niet admin, administrator of je domeinnaam) 2. Log in met nieuwe account 3. Verwijder oude admin account 4. Wijs alle content toe aan nieuwe account **Verberg author archives:** Voeg dit toe aan je functions.php om te voorkomen dat je username zichtbaar is via author URLs: ```php // Disable author archives add_action('template_redirect', function() { if (is_author()) { wp_redirect(home_url()); exit; } }); ``` ### Password best practices Zwakke wachtwoorden zijn de #1 oorzaak van succesvolle brute force aanvallen. WordPress forceert sinds versie 5.6 sterke wachtwoorden voor nieuwe admin accounts, maar bestaande accounts hebben deze vereiste niet. **Sterke wachtwoorden:** - Minimaal 16 karakters - Mix van hoofdletters, kleine letters, cijfers en symbolen - Gebruik een password manager (1Password, Bitwarden, LastPass) - Uniek per site (nooit hergebruiken) - Wijzig wachtwoorden na een (mogelijke) breach **Forceer sterke wachtwoorden voor alle users:** Gebruik de plugin [Force Strong Passwords](https://wordpress.org/plugins/force-strong-passwords/) om zwakke wachtwoorden te blokkeren voor editors, authors en subscribers. ### Login URL aanpassen De standaard wp-login.php URL is een groot bord met "hack hier" erop. Door je login URL te wijzigen, stop je geautomatiseerde bots die specifiek wp-login.php targeten. **WPS Hide Login** (gratis) - Verander wp-login.php naar custom URL (bijv. /mijn-login) - Redirect standaard login naar 404 - Lightweight (geen bloat) **Wordfence** (premium) - Login URL wijzigen is onderdeel van bredere security suite - Extra features zoals CAPTCHA op login Kies een obscure login slug die niet te raden is: niet /login of /admin maar iets unieks. En sla je nieuwe URL op in je password manager, want als je hem vergeet moet je via FTP of phpMyAdmin weer toegang krijgen. ### CAPTCHA: de bot stopper CAPTCHA onderscheidt mensen van bots en blokkeert geautomatiseerde login pogingen volledig. **Google reCAPTCHA** via plugins: - [Advanced noCaptcha & invisible Captcha](https://wordpress.org/plugins/advanced-nocaptcha-recaptcha/) (gratis) - Onzichtbaar voor legitieme users, blokkeert bots - Werkt op login, registratie en wachtwoord reset Combineer CAPTCHA met login limiting voor dubbele bescherming: bots worden gestopt door CAPTCHA, persistent handmatige aanvallen door rate limiting. ## Hardening basics: versterk je verdediging WordPress is out-of-the-box best veilig, maar er zijn tientallen instellingen die je kunt aanscherpen om aanvallen te bemoeilijken. Dit noemen we hardening: het verwijderen van onnodige functionaliteit en het verstevigen van je configuratie. Hardening is laag 4 van defense in depth en het verschil tussen een makkelijk en een moeilijk doelwit. ### wp-config.php beveiligen Je wp-config.php bevat je database credentials en security keys. Als een hacker toegang krijgt tot dit bestand, is game over. Zo bescherm je het. **Verplaats wp-config.php buiten de webroot:** WordPress zoekt automatisch één directory hoger als wp-config.php niet in de root staat. Dit maakt het bestand ontoegankelijk via de browser. ```bash # Als je webroot /public_html is: mv /public_html/wp-config.php /home/username/wp-config.php ``` **Verberg wp-config.php via .htaccess:** Voeg dit toe aan je .htaccess bestand om directe toegang te blokkeren: ```apache order allow,deny deny from all ``` **Disable file editing via admin:** WordPress laat standaard toe dat admins theme en plugin bestanden kunnen editen via de admin. Dit is een security risk. Schakel het uit in wp-config.php: ```php define('DISALLOW_FILE_EDIT', true); ``` **Wijzig database prefix:** De standaard wp_ prefix maakt het makkelijker voor SQL injection aanvallen. Wijzig het naar iets unieks tijdens installatie, of achteraf via plugins zoals [Brozzme DB Prefix](https://wordpress.org/plugins/brozzme-db-prefix-change/). **Regenerate security keys:** WordPress gebruikt security keys voor cookies en sessions. Wijzig ze jaarlijks via de [WordPress salt generator](https://api.wordpress.org/secret-key/1.1/salt/) en plak de nieuwe keys in wp-config.php. ### File permissions Verkeerde file permissions geven hackers write toegang tot je bestanden. Linux file permissions werken met drie cijfers (owner/group/others) en drie permissies (read/write/execute). **Correcte WordPress permissions:** - **Directories: 755** (owner kan alles, anderen kunnen lezen/uitvoeren) - **Bestanden: 644** (owner kan lezen/schrijven, anderen kunnen alleen lezen) - **wp-config.php: 600** (alleen owner kan lezen/schrijven) **Herstel permissions via SSH:** ```bash # Navigeer naar je WordPress root cd /pad/naar/wordpress # Zet directory permissions find . -type d -exec chmod 755 {} \; # Zet file permissions find . -type f -exec chmod 644 {} \; # Extra beveiliging voor wp-config.php chmod 600 wp-config.php ``` De meeste hacks door file permission problemen zijn te voorkomen met deze standaard settings. ### Directory indexing uitschakelen Als directory indexing aan staat, kan iedereen de inhoud van je directories bekijken door naar /wp-content/uploads/ te gaan. Dit is informatielek en security risk. **Disable via .htaccess:** ```apache Options -Indexes ``` Test door naar /wp-content/plugins/ te gaan. Je zou een 403 Forbidden error moeten zien, niet een lijst met plugins. ### XML-RPC uitschakelen XML-RPC is een WordPress API die remote toegang toestaat. Het wordt gebruikt door sommige mobile apps en plugins, maar het is ook een populaire aanvalsvector voor brute force en DDoS aanvallen. **Check of XML-RPC actief is:** Ga naar `jouwsite.nl/xmlrpc.php`. Als je "XML-RPC server accepts POST requests only" ziet, is het actief. **Disable via .htaccess:** ```apache order deny,allow deny from all ``` **Of via plugin:** [Disable XML-RPC](https://wordpress.org/plugins/disable-xml-rpc/) doet hetzelfde met één klik. Let op: als je Jetpack gebruikt of de WordPress mobile app, heb je XML-RPC nodig. Test na het uitschakelen of alles nog werkt. ### Database security Je database credentials zijn de sleutels tot je koninkrijk. Als een hacker deze heeft, kan hij alles lezen, wijzigen en verwijderen. **Gebruik een sterk database wachtwoord:** - Minimaal 20 karakters - Random gegenereerd (gebruik tools zoals [passwordsgenerator.net](https://passwordsgenerator.net)) - Uniek voor elke database **Beperk database user privileges:** Je WordPress database user heeft geen DROP DATABASE of CREATE USER rechten nodig. Geef alleen: - SELECT, INSERT, UPDATE, DELETE (data manipulatie) - CREATE, ALTER, INDEX (table beheer) **Prefix database tabellen:** Gebruik niet de standaard wp_ prefix, maar iets als wpx47_. Dit bemoeilijkt SQL injection aanvallen. **Regular database backups:** Zie de backup sectie hierboven. Je database is de meest kritische data van je site. ### Security headers HTTP security headers instrueren browsers hoe ze met je site moeten omgaan en beschermen tegen XSS, clickjacking en andere aanvallen. **Voeg deze headers toe via .htaccess:** ```apache # XSS Protection Header set X-XSS-Protection "1; mode=block" # Prevent clickjacking Header always set X-Frame-Options "SAMEORIGIN" # Prevent MIME type sniffing Header set X-Content-Type-Options "nosniff" # Referrer Policy Header set Referrer-Policy "strict-origin-when-cross-origin" # Content Security Policy (test grondig voordat je dit activeert) # Header set Content-Security-Policy "default-src 'self';" ``` Test je security headers op [securityheaders.com](https://securityheaders.com). Een A of A+ score is het doel. **Plugin optie:** [HTTP Headers](https://wordpress.org/plugins/http-headers/) laat je headers configureren via WordPress admin zonder .htaccess te editen. ## SSL/HTTPS: versleutel alles HTTPS versleutelt alle communicatie tussen je bezoekers en je server. Zonder HTTPS kunnen hackers data onderscheppen (man-in-the-middle aanvallen), login credentials stelen en cookies kapen. Sinds 2014 geeft Google een ranking boost aan HTTPS sites. Sinds 2018 markeert Chrome HTTP sites als "Not Secure". En sinds 2023 is HTTPS praktisch de standaard geworden. Als je site nog HTTP gebruikt, ben je te laat. ### Let's Encrypt: gratis SSL [Let's Encrypt](https://letsencrypt.org) is een gratis Certificate Authority die 90-dagen SSL certificaten uitgeeft. Bijna alle hosting providers ondersteunen Let's Encrypt en automatische vernieuwing. **Via cPanel/Plesk:** 1. Log in op je hosting control panel 2. Zoek naar "SSL/TLS" of "Let's Encrypt" 3. Klik op "Install" voor je domein 4. Certificaat wordt automatisch aangevraagd en geïnstalleerd **Via Managed WordPress host:** Providers zoals [TransIP WordPress hosting](https://www.transip.nl/wordpress-hosting), Antagonist en Vimexx activeren SSL vaak automatisch. Check je hosting dashboard. ### Force HTTPS: redirect HTTP naar HTTPS Je SSL certificaat is geïnstalleerd, maar bezoekers kunnen nog steeds via HTTP komen. Force alle verkeer naar HTTPS: **Via .htaccess redirect:** ```apache RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] ``` **Via Really Simple SSL plugin:** [Really Simple SSL](https://wordpress.org/plugins/really-simple-ssl/) detecteert je SSL certificaat en forceert HTTPS met één klik. Het lost ook mixed content warnings automatisch op. ### Mixed content oplossen Mixed content betekent dat je HTTPS site resources laadt via HTTP (afbeeldingen, CSS, JavaScript). Browsers blokkeren dit, wat kapotte layouts en functionliteit veroorzaakt. **Check je site op mixed content:** Open je site in Chrome, druk F12, ga naar Console. Zoek naar "Mixed Content" warnings. **Fix mixed content:** 1. **Really Simple SSL plugin** lost 90% automatisch op 2. **Handmatig:** Zoek in je database naar http:// URLs en vervang door https:// 3. **Via wp-config.php:** Forceer WordPress om HTTPS te gebruiken: ```php define('FORCE_SSL_ADMIN', true); if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') $_SERVER['HTTPS']='on'; ``` Test grondig na het forceren van HTTPS. Check alle pagina's, vooral checkout en login flows. ## Firewall (WAF): filter kwaadaardig verkeer Een Web Application Firewall (WAF) zit tussen je bezoekers en je server en filtert kwaadaardig verkeer voordat het je WordPress site bereikt. Het blokkeert bekende aanvalspatronen (SQL injection, XSS, brute force) en suspicious IP adressen. Er zijn twee soorten WAFs: cloud-based (verkeer loopt via externe service) en plugin-based (draait op je server). Beide hebben voor- en nadelen. ### Cloud-based WAF: Cloudflare [Cloudflare](https://www.cloudflare.com) is de meest populaire cloud-based WAF. Het werkt als proxy: al je verkeer loopt via Cloudflare servers, waar het gefilterd wordt voordat het je site bereikt. **Voordelen:** - Blokkeert aanvallen voordat ze je server belasten - Ingebouwde DDoS protection - CDN (snellere laadtijden) inbegrepen - Gratis plan is prima voor kleine tot middelgrote sites **Nadelen:** - Al je verkeer loopt via Cloudflare (privacy overweging) - Rate limiting kan legitieme users blokkeren - Setup vereist DNS wijziging **Cloudflare setup:** 1. Maak een account op cloudflare.com 2. Voeg je domein toe 3. Wijzig je nameservers naar Cloudflare (bij je domeinregistrar) 4. Activeer "Security Level: Medium" (of High voor extra bescherming) 5. Enable "Browser Integrity Check" en "Challenge Passage" **Pro tip:** Gebruik Cloudflare "Under Attack" mode tijdens actieve aanvallen. Dit toont alle bezoekers een 5-seconden challenge voordat ze je site kunnen bereiken, wat bots effectief stopt. ### Plugin-based WAF: Wordfence [Wordfence](https://www.wordfence.com) is de populairste WordPress security plugin met 4+ miljoen actieve installaties. Het bevat een firewall die op je server draait en kwaadaardig verkeer blokkeert. **Wordfence Free features:** - Web Application Firewall (30 dagen vertraagde updates) - Brute force protection - Malware scanner (basic) - Security event logging - Two-factor authentication **Wordfence Premium (€99/jaar):** - Real-time firewall rule updates - Real-time malware signatures - Country blocking - Scheduled scans - Premium support **Wordfence setup:** 1. Installeer Wordfence via Plugins > Add New 2. Klik "Manage Firewall" in Wordfence menu 3. Enable "Extended Protection" (optimized firewall) 4. Configureer brute force settings (4 attempts, 20 min lockout) 5. Enable email alerts voor critical issues **Pro tip:** Wordfence verbruikt server resources. Als je site traag wordt, overweeg Cloudflare (cloud-based) in plaats van Wordfence, of upgrade naar betere hosting. ### Alternatieve WAF plugins **Sucuri Security** (gratis + premium vanaf €199/jaar) - Cloud-based WAF bij premium plan - Post-hack security actie ondersteuning - Malware removal service inbegrepen - Website integrity monitoring **All In One WP Security** (gratis) - Lightweight alternatief voor Wordfence - Basic firewall rules - Login security en file protection - Goed voor beginners (minder overweldigend dan Wordfence) **iThemes Security Pro** (€80/jaar) - Geïntegreerde security suite (geen standalone WAF) - Password expiration - Two-factor authentication - Scheduled malware scans Mijn aanbeveling: begin met **Cloudflare gratis + Wordfence gratis**. Dit geeft je twee lagen (cloud + server) zonder kosten. Upgrade naar premium als je actief aangevallen wordt of professionele support nodig hebt. ### IP blokkering: de ban hammer Sommige aanvallen komen van specifieke IP ranges (bijvoorbeeld bekende proxy services gebruikt door hackers). IP blokkering stopt deze aanvallen direct. **Via Wordfence:** Wordfence → Firewall → Manage Rate Limiting & Blocking → Block IPs **Via .htaccess:** ```apache order allow,deny deny from 123.456.789.0 allow from all ``` **Country blocking:** Als je alleen Nederlandse bezoekers hebt, kun je alle verkeer buiten Nederland blokkeren. Dit stopt 80% van brute force aanvallen (die vaak uit Aziatische of Oost-Europese IP ranges komen). Wordfence Premium en Cloudflare bieden country blocking. Let op: wees voorzichtig met agressieve blocking. Je kunt legitieme users per ongeluk blokkeren (false positives). Monitor je logs en whitelist je eigen IP. ## Malware scanning & monitoring Preventie is 90% van security, maar detectie is de andere 10%. Zelfs met alle beveiligingslagen kan malware je site bereiken (bijvoorbeeld via een gecompromitteerde plugin die je net geïnstalleerd hebt). Daarom heb je monitoring nodig. Malware scanning detecteert verdachte bestanden, gewijzigde core files en backdoors voordat ze schade aanrichten. Activity logging toont wie wat doet op je site, zodat je verdachte acties kunt spotten. ### Security plugin vergelijking | Plugin | Gratis versie | Premium prijs | Malware scan | Real-time | WAF | 2FA | Best voor | |--------|---------------|---------------|--------------|-----------|-----|-----|-----------| | **Wordfence** | Ja (beperkt) | €99/jaar | Ja | Premium only | Ja | Ja | Middelgrote sites | | **Sucuri** | Ja (basic) | €199/jaar | Ja | Ja | Premium only | Nee | Sites met hoog risico | | **iThemes Security** | Ja | €80/jaar | Premium only | Nee | Basic | Ja | Beginners | | **All In One WP Security** | Ja | N/A | Basis file check | Nee | Basic | Nee | Budget/kleine sites | **Wordfence** is de meest complete gratis optie. De scanner draait elke 24 uur en controleert: - Core file integrity (wijzigingen aan WordPress core) - Known malware signatures - Backdoors en suspicious code - Blacklist status (Google Safe Browsing) **Sucuri** heeft de beste reputatie voor post-hack cleanup. Als je site gehackt is, helpt hun team met malware verwijderen en herstel. Premium is duur (€199/jaar) maar kan zichzelf terugverdienen bij één incident. **iThemes Security** is het meest gebruiksvriendelijk. Minder technisch dan Wordfence, betere UX, goede keuze voor beginners. **All In One WP Security** is ultra lightweight en gratis. Minder features maar ook minder server load. Goed voor gedeelde hosting of als je Cloudflare al gebruikt voor WAF. ### Scan frequentie **Dagelijks:** Als je een webshop of membership site hebt met gevoelige data. Wordfence gratis scant automatisch elke 24 uur. **Wekelijks:** Voor content websites en blogs zonder transacties. Schedule scans op rustige tijden (nachts) om server load te minimaliseren. **Na updates:** Scan altijd na het installeren van nieuwe plugins of themes. Sommige plugins worden gecompromitteerd op de WordPress repository zelf. **Na incident:** Als je verdachte activiteit ziet (onverwachte logins, nieuwe admin users, wijzigingen die je niet hebt gemaakt), scan direct. ### Activity logging Activity logs tonen wie wanneer wat heeft gedaan op je site. Dit is essentieel voor troubleshooting én security. **WP Activity Log** (gratis + premium) - Logt alle wijzigingen (posts, plugins, users, settings) - Search en filter functionaliteit - Email alerts voor kritieke acties - Premium voegt SMS alerts en log archiving toe **Waarop letten in logs:** - Nieuwe admin users die je niet hebt aangemaakt - Failed login attempts van onbekende usernames - File modifications buiten update tijden - Plugin/theme installaties die je niet hebt gedaan - Database queries van verdachte plugins Wordfence bevat basic activity logging. WP Activity Log is gedetailleerder en beter doorzoekbaar. **Pro tip:** Zet email alerts aan voor kritieke acties (nieuwe admin users, plugin installaties, wp-config.php wijzigingen). Je wilt binnen minuten weten als er iets verdachts gebeurt, niet dagen later. ### File integrity monitoring File integrity monitoring (FIM) detecteert wijzigingen aan core files en vergelijkt ze met originele WordPress versies. **Wordfence scanner** controleert automatisch: - WordPress core files (moeten exact matchen met origineel) - Plugin files (wijzigingen kunnen malware zijn) - Theme files Als de scanner wijzigingen detecteert, krijg je een lijst met gewijzigde bestanden. Je kunt dan: 1. **Restore naar origineel** (als het core files zijn) 2. **Handmatig inspecteren** (als het plugin/theme files zijn) 3. **Verwijderen** (als het duidelijk malware is) False positives komen voor (vooral bij plugins die zichzelf updaten). Daarom is het belangrijk om logs te controleren en niet blind alles te restoren. ## User management: wie heeft toegang? 80% van alle WordPress hacks gebeurt via gecompromitteerde user accounts. Niet via geavanceerde zero-days, maar via gestolen wachtwoorden en accounts met te veel rechten. User management is daarom een kritieke security laag: beperk wie toegang heeft, geef alleen de rechten die nodig zijn, en audit regelmatig wie actief is. ### WordPress user roles WordPress heeft 6 standaard user roles met oplopende rechten: **Subscriber** - Kan alleen eigen profiel beheren. Gebruik voor nieuwsbrieven en members-only content. **Contributor** - Kan posts schrijven maar niet publiceren. Goed voor gastschrijvers die redactionele controle nodig hebben. **Author** - Kan eigen posts schrijven en publiceren. Kan geen settings wijzigen of plugins installeren. **Editor** - Kan alle posts beheren (ook van anderen) en modereren. Geen toegang tot settings, plugins of themes. **Administrator** - Volledige controle. Kan alles, inclusief andere users verwijderen en plugins installeren. **Super Admin** - Alleen in multisite networks. Beheert alle sites in netwerk. ### Principle of Least Privilege Geef elke user **alleen de rechten die ze nodig hebben**. Niet meer. Dit heet Principle of Least Privilege en het beperkt schade als een account gehackt wordt. **Voorbeelden:** - Contentschrijver? → Author role (niet Editor) - Redacteur? → Editor role (niet Administrator) - Developer voor korte klus? → Admin met 2FA, verwijder na klus - Jezelf? → Admin, maar gebruik een Author account voor dagelijks werk **Red flags:** - Sites met 5+ admin accounts (waarom?) - Admin accounts voor freelancers die 6 maanden geleden gestopt zijn - Shared admin account (admin@bedrijfsnaam.nl) met zwak wachtwoord ### Admin accounts beperken Hoe minder admin accounts, hoe kleiner de attack surface. Ideaal: **1 persoonlijke admin per persoon die het echt nodig heeft**. **Audit je users:** 1. Ga naar Users in WordPress admin 2. Filter op Administrator role 3. Vraag per admin account: is dit nodig? 4. Downgrade naar Editor of verwijder account **Tijdelijke admin toegang:** Als een developer of designer tijdelijk admin rechten nodig heeft: 1. Maak een admin account met sterke random credentials 2. Forceer 2FA op dit account 3. Verwijder het account zodra de klus klaar is 4. Scan je site na verwijdering (check of er geen backdoors geplaatst zijn) **Pro tip:** Gebruik de plugin [User Role Editor](https://wordpress.org/plugins/user-role-editor/) om custom roles te maken met precies de rechten die je nodig hebt. Bijvoorbeeld een "SEO Manager" role die posts kan editen en Yoast kan gebruiken, maar geen plugins kan installeren. ### Password policies Zwakke wachtwoorden zijn de #1 oorzaak van gecompromitteerde accounts. WordPress forceert sinds 5.6 sterke wachtwoorden voor admins, maar niet voor andere roles. **Forceer sterke wachtwoorden voor alle roles:** Plugin: [Force Strong Passwords](https://wordpress.org/plugins/force-strong-passwords/) **Password expiration:** Sommige security experts bevelen password rotation (wachtwoorden elke 90 dagen wijzigen) aan. Anderen zeggen dat dit users aanmoedigt om zwakkere, makkelijker te onthouden wachtwoorden te gebruiken. Mijn advies: gebruik password rotation alleen voor gedeelde accounts. Voor persoonlijke accounts met 2FA is het niet nodig. **Inactive account cleanup:** Verwijder accounts die 6+ maanden inactief zijn. Ze vergeten hun wachtwoord toch, en oude accounts zijn security risks. ## Hosting security: de fundering Security begint bij je hosting. Zelfs met alle plugins en hardening maatregelen kun je een gecompromitteerde server niet beveiligen. Je host is de fundering waarop alle andere lagen rusten. Niet alle hosting is gelijk. Budget shared hosting met 500 sites op één server is inherent minder veilig dan managed WordPress hosting met isolatie en proactieve security monitoring. ### Managed WordPress hosting voordelen Managed WordPress hosts zijn gespecialiseerd in WordPress en nemen veel security werk uit handen: **Automatische updates** - Core updates en vaak ook plugin updates worden automatisch geïnstalleerd (na testen op staging). **Proactive malware scanning** - Server-level scans detecteren malware voordat het je site bereikt. **DDoS protection** - Ingebouwde bescherming tegen volumetrische aanvallen. **Staging omgevingen** - Test updates veilig voordat ze live gaan. **Daily backups** - Automatisch en offsite opgeslagen. **Dedicated resources** - Geen gedeelde server met 500 andere sites die gehackt kunnen worden. **Bekende managed WordPress hosts:** - [TransIP Managed WordPress](https://www.transip.nl/wordpress-hosting) - €8,99-€29,99/mnd, Nederlands, inclusief SSL en backups - Antagonist Managed WordPress - €15-€50/mnd, focus op performance en security - Kinsta - $35-$400/mnd, premium tier, Google Cloud infrastructuur - WP Engine - $30-$290/mnd, enterprise features, staging inbegrepen Managed hosting kost meer dan shared hosting (€10-30/mnd vs €3-5/mnd), maar bespaart uren security werk en heeft betere uptime. Voor zakelijke sites is het de investering waard. ### Nederlandse hosting providers met security focus Als je liever bij een Nederlandse host blijft (data in Nederland, Nederlandse support): **TransIP** - Gratis SSL, automatische backups, DDoS bescherming standaard. Managed WordPress pakket voegt staging en premium support toe. **Antagonist** - Security-first host, proactieve monitoring, managed updates. Duurder maar extreem betrouwbaar. **Vimexx** - Solide basis security (SSL, backups), betaalbaar (€4-12/mnd). Minder managed features maar goed voor tech-savvy users. **Hostnet** - Enterprise hosting, dedicated servers, managed services. Voor grote webshops en corporate sites. **Byte** - Budget shared hosting met goede basis security. €3-8/mnd, goed voor starters en hobby sites. ### Hosting security checklist Als je bij je huidige host blijft, check of ze deze security basics bieden: **Must-haves:** - Gratis SSL certificaten (Let's Encrypt) - Automatische backups (dagelijks, minimaal 7 dagen retentie) - PHP 8.0+ ondersteuning - SSH toegang voor developers - Firewall (server-level) **Nice-to-haves:** - Malware scanning - DDoS protection - Staging omgevingen - Git integration - Web Application Firewall (WAF) **Red flags:** - PHP 7.4 of lager (end-of-life, geen security patches) - Geen SSL ondersteuning - Geen backups of alleen handmatige backups - Support die dagen niet reageert - Regelmatige downtime Als je host 3+ red flags heeft, overweeg dan serieus om te migreren. Hosting is te belangrijk om op te bezuinigen. **Pro tip:** Test je host security op [Mozilla Observatory](https://observatory.mozilla.org) en [ImmuniWeb](https://www.immuniweb.com/ssl/). Deze tools scannen je server configuratie en geven concrete aanbevelingen. ## Incident response plan: als het misgaat Je kunt 99% van aanvallen stoppen, maar die laatste 1% kan toch doorkomen. Misschien via een zero-day vulnerability, misschien via social engineering, misschien via een gecompromitteerde developer. Shit happens. De vraag is niet óf je ooit gehackt wordt, maar wat je doet wanneer het gebeurt. Een incident response plan betekent het verschil tussen 2 uur downtime en 2 weken ellende. ### Als je gehackt bent: stappenplan **Stap 1: Blijf kalm en documenteer** Paniek maakt fouten. Take a breath. Screenshot alles: verdachte admin users, gewijzigde files, error messages. Dit helpt later met analyse. **Stap 2: Zet je site in maintenance mode** Voorkom verdere schade en bescherm je bezoekers. Via plugin (WP Maintenance Mode) of handmatig via wp-config.php: ```php define('WP_MAINTENANCE_MODE', true); ``` **Stap 3: Wijzig alle wachtwoorden** Alle accounts (WordPress admin, FTP, database, hosting control panel). Doe dit vanaf een schone computer, niet vanaf de mogelijk gecompromitteerde server. **Stap 4: Maak een backup van gehackte staat** Klinkt contra-intuïtief, maar je hebt misschien forensische data nodig. Backup je huidige (gehackte) site naar een externe locatie voordat je gaat cleanen. **Stap 5: Scan en identificeer malware** Run een volledige Wordfence of Sucuri scan. Kijk naar: - Onbekende bestanden in /wp-content/uploads/ - Wijzigingen aan core files - Suspicious code in theme functions.php - Nieuwe admin users - Backdoor plugins **Stap 6: Clean of restore** Twee opties: **Optie A: Clean (als je zeker weet waar de malware zit)** - Verwijder verdachte bestanden - Restore gewijzigde core files - Update alle plugins en themes - Verwijder onbekende admin users **Optie B: Restore vanuit backup (veiliger)** - Restore naar backup van vóór de hack - Verlies je wel content die na backup datum is gemaakt - Update alles voordat je online gaat **Stap 7: Harden en update** Voordat je weer online gaat: - Update WordPress, plugins, themes naar laatste versies - Verwijder onnodige plugins - Implement 2FA - Wijzig database prefix - Scan opnieuw **Stap 8: Monitor intensief** Check dagelijks na de hack: - Activity logs voor verdachte acties - Nieuwe bestanden in wp-content - Failed login attempts - Server resource gebruik (cryptominers gebruiken veel CPU) ### Professional recovery services Sommige hacks zijn te complex om zelf op te lossen. Backdoors kunnen diep verstopt zitten, en als je één mist, ben je binnen een week opnieuw gehackt. **Sucuri Incident Response** (€299-899) - Malware removal door security experts - Backdoor detection en verwijdering - Blacklist removal (Google, Norton, McAfee) - Post-hack security hardening **Wordfence Care** (vanaf €490) - Prioriteit support via ticket en chat - Hands-on malware removal - Fix voor hacked sites binnen 24 uur **Local security experts** In Nederland zijn er diverse WordPress security specialisten die incident response doen. Google "WordPress hack hulp Nederland" en check reviews. **Wanneer professional hulp inschakelen:** - Je vindt geen malware maar site blijft verdacht gedrag vertonen - Google heeft je site blacklisted - Je bent opnieuw gehackt na zelf te cleanen - Je hebt geen recente backup - Je site is critical voor je business en je kunt geen downtime riskeren ### Google blacklist removal Als Google je site detecteert als malware of phishing, krijg je een grote rode waarschuwing in zoekresultaten. Dit is catastrofaal voor traffic. **Check of je blacklisted bent:** - [Google Transparency Report](https://transparencyreport.google.com/safe-browsing/search) - Search Console → Security Issues **Blacklist removal proces:** 1. Clean alle malware volledig (Google rescant automatisch) 2. Request review in Google Search Console 3. Leg uit wat je gefixed hebt en welke stappen je genomen hebt 4. Wacht 3-7 dagen op review **Pro tip:** Google blacklist removal kan 2-4 weken duren, zelfs na cleaning. Dit is waarom preventie zo belangrijk is. Eenmaal op de blacklist komen kost je duizenden euro's aan verloren omzet. ## Security checklist: maak het een gewoonte WordPress security is geen eenmalige klus maar een set gewoontes. Deze checklist helpt je om security onderdeel te maken van je routine. ### Dagelijks (5 minuten) **Check activity logs** - Scan op verdachte login attempts of onbekende wijzigingen. WP Activity Log of Wordfence activity log. **Monitor uptime** - Gebruik een uptime monitor (UptimeRobot, Pingdom) om downtime direct te detecteren. Onverwachte downtime kan een aanval zijn. ### Wekelijks (15 minuten) **Check voor updates** - WordPress core, plugins, themes. Update binnen 7 dagen na release (na backup). **Review failed logins** - Check of er brute force pogingen zijn. Wordfence → Tools → Live Traffic. **Backup verificatie** - Check of je laatste automatische backup succesvol is geweest. ### Maandelijks (30 minuten) **Run volledige malware scan** - Wordfence of Sucuri full scan. Check alle flagged files. **Audit users** - Controleer of alle admin accounts nog nodig zijn. Verwijder inactive users. **Review installed plugins** - Zijn er plugins die je niet meer gebruikt? Deactiveer en verwijder. Elk overbodige plugin is een potentiële vulnerability. **Test je backup restore** - Download een backup en restore op een staging omgeving. Test of alles werkt. ### Driemaandelijks (1 uur) **Regenerate security keys** - Wijzig je WordPress salts en keys in wp-config.php via de [WordPress generator](https://api.wordpress.org/secret-key/1.1/salt/). **Security audit** - Run je site door [WPScan](https://wpscan.com) of [Sucuri SiteCheck](https://sitecheck.sucuri.net) voor externe vulnerability scan. **Review Google Search Console** - Check voor security issues, manual actions of malware warnings. **Update PHP versie** - Check of je host nieuwere PHP versies ondersteunt en test of je site compatibel is. ### Jaarlijks (2-3 uur) **Complete security review** - Doorloop deze hele gids opnieuw en check welke stappen je overgeslagen hebt. **Password rotation** - Wijzig alle belangrijke wachtwoorden (hosting, database, hoofdadmin account). **Theme/plugin audit** - Zijn er plugins die 12+ maanden geen update hebben gehad? Zoek alternatieven. **Hosting review** - Is je huidige host nog competitief qua security, performance en prijs? Check [onze hosting vergelijking](/nl/vergelijk). **Disaster recovery test** - Simuleer een volledige site crash en test of je van nul kunt restoren met alleen je backups. ### Automatisering tips **Email alerts** - Zet notificaties aan voor kritieke events (new admin users, failed logins, malware detection). **Scheduled scans** - Wordfence en Sucuri kunnen automatisch scannen op rustige tijden (3-5 uur 's nachts). **Update monitoring** - Tools zoals ManageWP of MainWP geven centrale dashboards voor update status op meerdere sites. **Uptime monitoring** - UptimeRobot (gratis) checkt elke 5 minuten of je site online is en alert je via email/SMS. Hoe meer je automatiseert, hoe minder je kunt vergeten. Het doel is om security onzichtbaar en automatisch te maken, zodat het geen dagelijkse distraction is. ## Veelgestelde vragen **Zijn gratis security plugins voldoende of moet ik betalen?** Voor 90% van de websites zijn gratis plugins (Wordfence Free, All In One WP Security) voldoende gecombineerd met Cloudflare gratis. Upgrade naar premium als je actief aangevallen wordt, realtime updates nodig hebt, of professional support wilt. Voor webshops en membership sites met gevoelige data is premium de investering waard. **Hoe weet ik of mijn site gehackt is?** Red flags: onverwachte redirects, nieuwe admin users die je niet hebt aangemaakt, Google blacklist waarschuwing, spam emails vanaf je domein, verdachte bestanden in wp-content/uploads/, extreme server load zonder traffic stijging. Run een Wordfence of Sucuri scan bij vermoeden. **Wat is belangrijker: firewall of malware scanner?** Firewall is preventie (stopt aanvallen voordat ze binnen zijn), scanner is detectie (vindt malware die al binnen is). Je hebt beide nodig. Prioriteit: eerst firewall (Cloudflare + Wordfence), dan scanner. Maar ideaal is beide lagen actief. **Moet ik XML-RPC uitschakelen?** Ja, tenzij je Jetpack gebruikt of de WordPress mobile app. XML-RPC is een populaire brute force vector en de meeste sites hebben het niet nodig. Test na het uitschakelen of je plugins nog werken. **Kan ik gehackt worden via mijn theme?** Ja, vooral nulled themes (illegale premium themes) bevatten vaak backdoors. Gebruik alleen themes van gerenommeerde developers (ThemeForest, Elegant Themes, StudioPress) of de WordPress repository. Update je theme regelmatig. **Is WordPress veiliger of onveiliger dan andere CMS'en?** WordPress zelf is relatief veilig. Het probleem is het ecosysteem: met 60.000+ plugins is kwaliteitscontrole moeilijk. Joomla en Drupal hebben vergelijkbare issues. Proprietary CMS'en zijn vaak veiliger maar minder flexibel. Met goede security practices is WordPress veilig genoeg voor banking en overheid. **Hoeveel kost goede WordPress security?** Basis security (gratis plugins + Cloudflare + Let's Encrypt) kost €0/mnd maar vereist technische kennis. Midrange (premium plugins + managed hosting) kost €15-40/mnd. Enterprise (dedicated security team + managed services) vanaf €200/mnd. Voor de meeste sites is €20-30/mnd voldoende. **Wat moet ik doen na een succesvolle hack?** Zie de Incident Response sectie hierboven. Kort: maintenance mode, wijzig alle wachtwoorden, scan en clean malware, restore van backup indien nodig, harden en update alles, monitor intensief. Overweeg professional hulp als je het niet zelf kunt.

Klaar om hosting te vergelijken?

Start vergelijken
🍪

We waarderen je privacy

We gebruiken cookies om je de beste ervaring te geven, relevante advertenties te tonen en onze site te verbeteren.

Door op "Alles accepteren" te klikken, ga je akkoord met ons gebruik van cookies. Lees ons privacybeleid