Beveilig je WordPress website met .htaccess
WordPress is op dit moment met 54,7 procent marktaandeel het meest populaire CMS op internet en 17,2% van alle websites draait op WordPress. (bron)
Deze populariteit van WordPress heeft zo z’n voor- en nadelen. Een groot voordeel is de grote community die werkt met WordPress, die zorgt voor het constant bijwerken van plugins, thema’s en de WordPress core zelf. Een nadeel is dat door de grote hoeveelheid WordPress websites, het voor hackers aantrekkelijk wordt om WordPress als platform aan te gaan vallen.
Aan ons (gebruikers van WordPress) dus de taak om er voor te zorgen dat onze website goed beveiligd is. Dit begint natuurlijk met een slimme gebruikersnaam en een nog slimmer wachtwoord., maar ook met extra regels aan je .htaccess bestand kan je veel mogelijke ingangen afsluiten.
Standaard .htaccess
Het standaard .htaccess bestand van WordPress bevat de volgende code:
2 |
<IfModule mod_rewrite.c> |
5 |
RewriteRule ^index\.php$ - [L] |
6 |
RewriteCond %{REQUEST_FILENAME} !-f |
7 |
RewriteCond %{REQUEST_FILENAME} !-d |
8 |
RewriteRule . /index.php [L] |
We gaan eens kijken wat we zoal in dit bestand kunnen toevoegen. Extra regels voegen we toe na de # END WordPress regel. Let op, maak voordat je aan de slag gaat eerst een kopie van je .htaccess voor in het geval er iets mis gaat.
Bescherm je .htaccess
Als eerste gaan we zorgen dat niemand toegang heeft tot het .htaccess bestand.
Alleen toegang vanaf je eigen ip adres(sen)
Om er voor te zorgen dat er de wp-admin map alleen toegankelijk is vanaf je eigen ip adres(sen) voeg je de volgende code toe. De xxx.xxx.xxx.xxx vervangen we door ons eigen ip adres. Als je meerdere ip adressen wilt toevoegen dan kan je ze achter elkaar invoeren gescheiden door een spatie.
1 |
<Directory /www/public_html/example> |
3 |
allow from xxx.xxx.xxx.xxx |
Bescherm je wp-config.php
Om toegang tot je wp-config.php (waar nogal eens FTP inloggegevens in staan) te ontzeggen, gebruik je onderstaande regels.
Meer bescherming
Voor bescherm tegen script injectie en modificatie van _REQUEST en GLOBALS gebruik je onderstaande regels:
1 |
Options +FollowSymLinks |
3 |
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] |
4 |
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] |
5 |
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) |
6 |
RewriteRule ^(.*)$ index.php [F,L] |
Plugins om WordPress te beveiligen
Mocht je plugins willen gebruiken om je WordPress installatie te beveiligen, dan kan ik je Login Lockdown aanraden om ip adressen te blokkeren waarvan herhaaldelijk login pogingen worden gedaan. Een andere plugin is WP Security Scan, waarmee je een aantal adviezen kan krijgen over te nemen veiligheidsmaatregelen.