7 geavanceerde WordPress beveiligingstips
In ons vorig blogartikel 'Beveilig je WordPress website' legden we uit welke basisbeveiligingen je kan treffen om je WordPress website of blog te beveiligen. In dit blogartikel gaan we dieper in op een aantal technische aanpassingen die je kan ondernemen.
Schakel pingbacks uit
In de begindagen van bloggen maakte trackbacks en pingbacks het gemakkelijk om andere blogs op de hoogte te brengen dat er naar hen gelinkt werd. Bijvoorbeeld: Stel dat je een artikel schrijft en een link toevoegt naar een bericht op de blog van een derde. Jouw blog stuurt dan automatisch een ping naar deze blog. Deze ‘pingback’ verschijnt dan in de reacties van de andere blog met de link naar jouw blog. Heel fijn, ware het niet dat dit vandaag de dag vooral door spammers gebruikt wordt om te linken naar niet zo propere websites.
Om te voorkomen dat jouw reacties overspoeld worden met spamlinks, is het aangeraden om pingbacks uit te schakelen. Dat doe je in je WordPress ‘Instellingen > Discussie’. Vink hier ‘Sta linknotificaties van andere blogs (pingbacks en trackbacks) op nieuwe berichten toe’ uit.
Geef bestanden en mappen de juiste rechten
De rechten van je WordPress bestanden zouden moeten zijn:
- 644 voor bestanden (rw- r– r--)
- 755 voor mappen (rwx r-x r-x)
Dit zijn meestal de standaard rechten. Maar omwille van de gevoeligheid van het bestand ‘wp-config.php’ wijzig je de rechten van dit bestand best naar 600 zodat onbevoegden het bestand niet kunnen lezen. Want in het bestand ‘wp-config.php’ staat veel gevoelige data. Zoals de inloggegevens van je databank en de beveiligingssleutels die instaan voor de versleuteling van onder andere je inloggegevens.
Blokkeer niet-geautoriseerd toegang tot xmlrpc.php
XML-RPC zit al van de begindagen van WordPress, in de vroege jaren 2000, in WordPress. Het werd gebruikt om te communiceren met andere platformen en maakte het gebruik van trackbacks en pingbacks mogelijk. Ook waren de internetverbindingen in die tijd nog niet zo snel als dat we vandaag gewoon zijn, waardoor men vaak blogartikelen in een lokale ‘offline editor’ schreef en dan via XML-RPC online plaatste.
Het gebruik van XML-RPC is dus achterhaald, maar het is nog steeds aanwezig omwille van backwards-compatibility. Maar hier schuilt een risico. Wanneer iemand de XML-RPC van jouw WordPress installatie aanspreekt, dan kan hij een gebruikersnaam en wachtwoord meegeven. Dat maakt het een aanvaller gemakkelijk om een brute force aanval uit te voeren om je inloggegevens te achterhalen. Daarom is het raadzaam om de XML-RPC functionaliteit uit te schakelen.
XML-RPC uitschakelen via een plugin
Zoek in de WordPress plugins naar ‘disable xml-rpc’ en je zal tal van plugins vinden wat XML-RPC voor jouw WordPress uitschakelen.
XML-RPC uitschakelen op je NGINX webserver
Plaats deze code in je NGINX configuratie.
location ~* ^/xmlrpc.php$ {
deny all;
}
XML-RPC uitschakelen op je Apache webserver
Plaats deze code in je .htaccess bestand.
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>
Voorkom het uitvoeren van PHP-bestanden in bepaalde mappen
Als je in WordPress bestanden upload, dan komen deze terecht in een submap van /wp-content/uploads. Om te voorkomen dat deze bestanden uitgevoerd kunnen worden en malafide code kunnen uitvoeren, is het aangeraden om te verbieden dat PHP-bestanden wat in die mappen staan, uitgevoerd kunnen worden.
PHP-executie uitschakelen op je NGINX webserver
Plaats deze code in je NGINX configuratie.
location ~* /wp-includes/.*.php$ {
deny all;
}
location ~* /wp-content/.*.php$ {
deny all;
}
PHP-executie uitschakelen op je Apache webserver
Gebruik je Apache als webserver? Dan maak je in de map /wp-content/uploads/ en in de map /wp-includes/ een bestand .htaccess aan met deze code:
<Files *.php>
Deny from all
</Files>
Blokkeer toegang tot wp-config.php
In het bestand ‘wp-config.php’ staat veel gevoelige data. Zoals de inloggegevens van je databank en de beveiligingssleutels wat instaan voor de versleuteling van onder andere je inloggegevens. Deze gegevens mogen nooit publiekelijk toegankelijk zijn.
wp-config toegang uitschakelen op je NGINX webserver
Plaats deze code in je NGINX configuratie.
location ~* ^/wp-config.php$ {
deny all;
}
wp-config toegang uitschakelen op je Apache webserver
Plaats deze code in je .htaccess bestand.
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
Verander de standaard WordPress admin gebruikersnaam
Wanneer hackers, of geautomatiseerde bots, proberen in te breken op het administrator gedeelte van jouw WordPress website, dan proberen ze onder andere het wachtwoord te achterhalen van het ‘admin’ account. Log jij nog in met het account ‘admin’? Dan is het aangeraden om dit te veranderen. Dit doe je door eerst een nieuwe gebruiker aan te maken en daarna het ‘admin’ account te verwijderen.
Voordat je dit doet is het verstandig om eerst een back-up te maken. Dit doe je best in het webhosting beheerdersaccount.
- Stap 0: Maak een back-up van je WordPress website in je webhosting controlepaneel (zoals cPanel, Plesk of DirectAdmin).
- Stap 1: Maak een nieuwe gebruiker aan en geef deze de rol ‘Administrator’. Kies als gebruikersnaam bijvoorbeeld je eigen naam. Kies een sterk wachtwoord (liefst van minimaal 20 tekens en gebruik een wachtwoordmanager om dit wachtwoord te onthouden).
- Stap 2: Log uit.
- Stap 3: Log in met je nieuw account.
- Stap 4: Controleer of je alle toegangen hebt. Verwijder het oude admin-account. Let op dat je hierbij aanduidt om alle content over te dragen naar je nieuw account.
Voorkom het bladeren door mappen
Bestanden die je in WordPress uploadt, komen terecht in de map /wp-content/uploads. Vanaf je blog of website kan je dan naar deze bestanden linken. Maar als je surft naar de map (zoals www.example.com/wp-content/uploads), dan is het mogelijk dat je doorheen al je bestanden kan bladeren. Dat is niet zo veilig, want dan zijn bijvoorbeeld al je geüploade bestanden wel heel gemakkelijk te vinden.
Op een NGINX webserver is het bladeren in mappen standaard uitgeschakeld.
Bladeren in mappen uitschakelen op je Apache webserver
Plaats deze regel onderaan in je .htaccess bestand.
Options -Indexes
WordPress hosting bij Nexxwave
Ben je op zoek naar een webhosting gespecialiseerd in WordPress? Dan kunnen wij je helpen. Wij maken dagelijks externe back-ups en voorzien een Web Application Firewall. Bovendien maken we het eenvoudig om met enkele klikken de veiligheid van je WordPress website op meer dan 15 vlakken op punt te stellen.
Het is zelfs mogelijk om via ‘Smart Updates’ updates je WordPress website eerst door middel van artificiële intelligentie te laten testen in een testomgeving voordat de updates op je live-website toegepast wordt. Volledig automatisch.