WordPress beveiligen: Jouw WordPress website veiliger in 7 stappen
Voordat je de tips hieronder gaat uitvoeren zorg dan dat je ook de WordPress basis beveiliging hebt uitgevoerd zoals deze al zo vaak door anderen beschreven zijn. Dat is in het kort: de juiste WordPress hosting kiezen, dat je geen ADMIN gebruikt als beheerder naam, gebruik een sterk wachtwoord, gebruik alleen betrouwbare plugins en thema en zorg dat alles netjes up to date is en blijft.
En nu aan de slag voor nog meer veiligheid op jouw WordPress website.
1. Wijzig de WordPress login URL
Verander de standaard login url met een plug-in zoals bijvoorbeeld WPS-Hide. Een bijkomend voordeel is dat de standaard robots die altijd het WordPress url bezoeken nu niets meer kunnen vinden en dat je hierdoor ook een wat lagere server belasting krijgt mocht jouw website veelvuldig onder vuur liggen van deze robots.
2. Gebruik een firewall
Voeg een htaccess 6G firewall toe of nog beter gebruik Block Bad Queries (BBQ) en Black hole bad bots plugins.
De BBQ plugin scant alle inkomende verkeer en blokkeert deze zodat alle nare code die hack robots op de website loslaten geen effect heeft.
De Black hole plugin stuurt alle robots, die zich niet houden aan de no-index regels en dus in de kern iets stouts willen uithalen, direct door naar een zogenaamd ‘black hole’. Eenmaal hier aangekomen is het ip adres van de robot geblokkeerd.
3. Two factor login (2FA)
Gebruik two factor login (2FA) op jouw login pagina. Hiervoor kun je bijvoorbeeld deze plug-in gebruiken: two factor. Let wel op dat bij deze plugin standaard de 2FA uitstaat bij elke gebruiker dus dat ze zelf kiezen of ze dit gebruiken. Waarom zou ik 2FA login gebruiken op mijn account? Lees dan dit als wat oudere artikel eens door…
4. IP whitelist wp-login.php en /wp-admin/
Zet het liefst jouw wp-login dicht met een ip whitelist of via een extra wachtwoord in het .htaccess bestand. Je kan een ip whitelist ook via een plugin regelen zoals bijvoorbeeld: WP Geo Protection. Hiermee kun je de website afschermen van toegang voor bepaalde landen (ip adressen), maar bijvoorbeeld ook alleen de wp-login op ip adres afschermen.
5. Sluit de XMLRPC en WPJSON
Disable XML-RPC Pingback
Als je XMLRPC niet gebruikt dan is het afsluiten hiervan aan te raden. Gebruik hiervoor bijvoorbeeld de plugin Disable XML-RPC pingback.
Of plaats de volgende code in jouw .htaccess bestand.
# Block xmlrpc.php requests <files xmlrpc.php> order deny,allow deny from all </files>
WPJSON
Voor het beheren van de wpjson toegang kun je de plugin Disable Rest Api gebruiken. Je kan dan beter de toegang beheren voor plugins die het wel gebruiken. Via de wp-json is het namelijk mogelijk allerlei informatie op te vragen over gebruikers en plugins. Lees ook mijn eerdere blog bericht ‘Uitschakelen JSON REST API in WordPress ‘.
6. De auteur informatie verbergen
Als je geen blog website hebt en dus geen auteurs informatie wilt delen kun je deze ook beter verbergen. De auteurs infor pagina verbergen kun je op 2 manieren doen:
1. Voeg de volgende snippet toe aan jouw .htaccess bestand.
# Stop author listings RewriteCond %{QUERY_STRING} author=d RewriteRule ^ /? [L,R=301]
2. Of je kan ook een author.php bestand toevoegen aan jouw child thema met de volgende code:
<?php header("HTTP/1.1 301 Moved Permanently"); header("Location: /");
7. Extra security headers toevoegen.
Test jouw huidige headers en score hier (https://securityheaders.com/). Tip: Vink wel even ‘hide results’ aan anders wordt je zichtbaar in de lijstjes onder het zoek venster.
Toe te voegen headers kun je plaatsen in jouw .htaccess bestand als in het voorbeeld hier onder. ook kun je bijvoorbeeld headers verwijderen die door de server worden toegevoegd, zoals ‘Powered by’ en het ‘Server’ type. Kijk hiervoor in de weergave van de headers en de juiste benaming op de website die hierboven is aangegeven.
# Extra Security Headers <IfModule mod_headers.c> Header set X-XSS-Protection "1; mode=block" Header always append X-Frame-Options SAMEORIGIN Header set X-Content-Type-Options nosniff Header set Strict-Transport-Security "max-age=31536000" env=HTTPS Header set Referrer-Policy "no-referrer-when-downgrade" ## unset some headers Header unset X-Powered-By Header unset Server </IfModule>
Wil je liever niet in het .htaccess bestand werken? Gebruik dan de Security Headers plugin.
Heb je geen tijd of kennis om bovenstaande zelf uit te voeren kies dan voor onze WordPress onderhoud service. Daarin worden bij ons meteen ook bovenstaande zaken op jouw website geregeld.