De 5 essentiële: doe deze eerst
- Houd de WordPress-core, de thema's en de plugins bijgewerkt. Kwetsbare plugins zijn de aanvalsvector nummer 1. Activeer de automatische updates van minor-versies (WordPress 5.6+ doet dit standaard). Voor major-versies werkt u binnen 7 dagen na de release bij. Voor plugins activeert u de automatische update van de vertrouwde plugins; bekijk de release-opmerkingen van kritieke plugins handmatig.
- Gebruik sterke, unieke wachtwoorden voor elk WordPress-account. Vooral die van de beheerder. Gebruik een wachtwoordbeheerder (1Password, Bitwarden). Schakel de gebruikersnaam «admin» uit: maak een nieuwe beheerder aan en verwijder de oude.
- Activeer tweefactorauthenticatie. Gebruik Wordfence Login Security (gratis) of onze 2FA-QR-generator met een willekeurige TOTP-app. 2FA verslaat meer dan 99% van de credential-stuffing-aanvallen.
- Installeer een vertrouwde beveiligingsplugin. Wordfence (de gratis versie volstaat voor de meeste websites) of Solid Security. Stapel er niet meerdere: ze komen in conflict. De plugin beheert het limiet op inlogpogingen, de monitoring van de bestandsintegriteit en de malwarescan.
- Dagelijkse back-ups buiten de website. UpdraftPlus → Dropbox/Google Drive. Maak de back-up voordat u die nodig hebt. Test het herstelproces ten minste één keer.
De volgende 10: aanvullende maatregelen met hoge impact
- Forceer HTTPS. Let's Encrypt is gratis op elke moderne hosting. Leid HTTP om naar HTTPS op serverniveau.
- Wijzig het prefix van de databasetabellen. WordPress gebruikt standaard wp_; wijzig dit tijdens de installatie in iets aangepasts. Het voorkomt geen aanvallen, maar bemoeilijkt sommige aanvalspatronen.
- Schakel XML-RPC uit als u het niet gebruikt. XML-RPC is een veelvoorkomende amplificatievector voor brute force. Als u de mobiele app van Jetpack of remote publishing niet gebruikt, schakel het dan uit via .htaccess of een plugin.
- Beperk de inlogpogingen. Wordfence doet dit automatisch. Het voorkomt credential stuffing via brute force.
- Roteer de authenticatiesleutels/salts van WordPress. Gebruik onze WordPress-saltgenerator. Roteer ze na elk vermoeden van compromittering, na het verwijderen van een gecompromitteerde beheerder en routinematig elke 6-12 maanden.
- Gebruik SSH of SFTP om bestanden over te dragen, nooit kale FTP. FTP verzendt de inloggegevens in platte tekst.
- Beperk de toegang tot wp-admin per IP indien mogelijk. Als uw team vaste IP's gebruikt (kantoor, VPN), beperk wp-admin dan alleen tot die IP's. Via .htaccess of de Nginx-configuratie.
- Schakel bestandsbewerking uit in wp-config.php. Voeg toe:
define('DISALLOW_FILE_EDIT', true);Het voorkomt dat aanvallers thema's/plugins vanuit het dashboard bewerken als zij een account compromitteren. - Verberg het versienummer van WordPress. Verwijder de meta-tag generator. Het voorkomt geen aanvallen, maar vermindert de fingerprinting.
- Zet de bestandsrechten vast. Bestanden 644, mappen 755, wp-config.php 600. De meeste managed hostings doen dit automatisch; op een VPS configureert u het expliciet.
Afwerking: goed maar niet cruciaal
- Aangepaste inlog-URL (bijv. WPS Hide Login). Vermindert vooral de ruis van botverkeer; het is geen echte beveiliging.
- CAPTCHA op de inlogformulieren. Een lichte hindernis voor geautomatiseerde aanvallen.
- Schakel de uitvoering van PHP uit in /uploads/. Het voorkomt dat geüploade PHP-shells worden uitgevoerd.
- Gebruik de WAF van Cloudflare (gratis niveau). Het filtert kwaadaardig verkeer voordat het uw server bereikt.
- Stel een e-mailmelding voor de beheerder in voor plugin-/core-updates.
- Gebruik HSTS-preload om HTTPS op browserniveau af te dwingen.
- Schakel gebruikersenumeratie via de REST API uit (Solid Security of Wordfence regelen dit).
- Gebruik Content Security Policy (CSP)-headers.
- Schakel het bladeren door mappen uit (de meeste hostings doen dit standaard).
- Monitor de beschikbaarheid + integriteit met een externe dienst (gratis niveau van UptimeRobot + wekelijkse Sucuri SiteCheck).
- Beperk de gebruikersrollen tot het minimale privilege. De meeste medewerkers hebben geen toegang op editorniveau nodig.
- Versleuteling van de databaseback-ups (UpdraftPlus Premium biedt dit).
- Het hosten van afbeeldingen buiten het domein via een CDN (vermindert het aanvalsoppervlak).
- Periodieke beoordeling van het beveiligingsauditlogboek.
- Jaarlijkse penetratietest als de website aanzienlijke inkomsten genereert.
WordPress-beveiligingsmythes: sla ze over
Verschillende sterk aanbevolen «beveiligings»-maatregelen bieden minimale echte bescherming: (1) «De WordPress-versie verbergen»: het kennen van uw versie helpt gerichte aanvallen licht, maar de echte oplossing is bijwerken, niet verbergen. (2) «wp-config.php boven public_html verplaatsen»: levert in wezen nul beveiligingsvoordeel op; het bestand is al beschermd door .htaccess. (3) «De REST API uitschakelen»: breekt veel plugins en blokkeert weinig. Beperk in plaats daarvan specifieke endpoints. (4) «Meerdere beveiligingsplugins stapelen»: ze komen in conflict en overlappen. Eén vertrouwde plugin (Wordfence of Solid Security) dekt wat er drie zouden doen. (5) «wp-login.php hernoemen»: beveiliging door obscuriteit; aanvallers vinden de nieuwe URL makkelijk via redirects.
Als u bent gehackt: herstelchecklist
- Raak niet in paniek; verwijder niet meteen dingen. Maak eerst een momentopname van de huidige staat voor de forensische analyse.
- Haal de website offline (onderhoudsmodusplugin of .htaccess-redirect naar een statische pagina).
- Wijzig alle beheerderswachtwoorden en roteer de WordPress-salts.
- Audit de gebruikersaccounts: verwijder onmiddellijk de niet-herkende beheerdersaccounts.
- Scan op malware met Wordfence Premium of Sucuri.
- Vergelijk de huidige bestanden met een schone WordPress-download: de diff onthult de gewijzigde corebestanden.
- Controleer de databasetabel wp_options op onverwachte vermeldingen (bevat vaak geïnjecteerde JS).
- Herstel vanaf de meest recente schone back-up (hierom doen dagelijkse back-ups ertoe).
- Audit na het herstel elke plugin: verwijder de ongebruikte, werk ze allemaal bij en vervang die met publieke CVE's.
- Werk de WordPress-core bij naar de laatste versie.
- Schakel de website weer in en houd gedurende 30 dagen toezicht op herinfectie.