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:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
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.
<Files .htaccess> order allow,deny deny from all </Files>
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.
<Directory /www/htdocs/example> order deny,allow allow from xxx.xxx.xxx.xxx deny from all </Directory>
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.
<Files wp-config.php> order allow,deny deny from all </Files>
Meer bescherming
Voor bescherm tegen script injectie en modificatie van _REQUEST en GLOBALS gebruik je onderstaande regels:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
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.
Mocht je nog meer vragen hebben, kom dan eens langs op het WordPress spreekuur.




order deny,allow
allow from xxx.xxx.xxx.xxx
deny from all
Ik vind deze directory niet. Of moet ik eigen gegevens hier invullen.
Hoor graag.
De rest is wel gelukt.
Ik krijg met deze php een 500 error.
Jeroen,
je moet deze code aanpassen aan je eigen situatie. /www/htdocs/example moet je wijzigen naar de hoofdmap van je website.
alleen example of ook www/htdocs?
Dat weet ik niet, dat hangt af van de directory structuur op jouw website.
Goedenavond,
Da’s een duidelijke uitleg.
Kan ik de “injectie-regels” ook gebruiken bij Joomla?
Met vriendelijke groet, Jacco
Jacco,
ik heb geen ervaring met Joomla, dus geen idee of deze injectie regels ook werken voor Joomla. Even google levert mij deze pagina op: http://bodvoc.com/index.php?option=com_content&view=article&id=43:improving-your-joomla-htaccess-file&catid=2:joomla-security&Itemid=3
Dit zijn zeker goede tips. De plugin kende ik reeds, maar de wijzigingen in de htaccess had ik nog nimmer doorgevoerd. Stanks.
Zeer handige uitleg!
Enige tijd geleden zijn 3 van mijn wordpress sites gehackt d.m.v. sql injectie. Ik ben toen met van alles bezig geweest om alle wordpress sites (ook de niet gehackte) te voorzien met een oplossing voor toekomstige hack pogingen. Wat gebruik je zelf als oplossing hiervoor als ik vragen mag?
Ralph, ik gebruik zelf de bescherming voor htaccess, wp-config.php en de script injectie regels. Tevens gebruik ik een goed wachtwoord en de Login Lockdown plugin.