Verbeter de veiligheid van WordPress

Wordpress staat bekend om zijn open karakter, de grote diversiteit aan grafische themes en de ongekende mogelijkheden van plugins. Maar doordat iedereen in de achterliggende code kan neuzen, brengt dit ook veiligheidsrisico's met zich mee. Wij hebben een aantal tips op een rij gezet, waarmee je de veiligheid van jouw WordPress website kunt verbeteren.

Verbeter de veiligheid van WordPress

1. Update WordPress

Het is een beetje een no-brainer, maar het wordt helaas nogal eens vergeten; zorg ervoor dat je te allen tijde de laatste versie van WordPress op jouw server hebt staan. Het team achter WordPress brengt met grote regelmaat nieuwe versies van WordPress uit, waarmee bekende veiligheidsissues gefixt worden. Zet dus in je agenda of kras het met een mes in jouw bureau: check periodiek of er een update is van WordPress.

2. Update de plugins en themes

Het is aan ten zeerste aan te raden plugins (en themes) regelmatig te updaten én om niet gebruikte plugins te verwijderen. Dat maakt het niet alleen overzichtelijk, maar het verkleint ook de kans op veiligheidsproblemen. Zorg er bovendien voor dat je jezelf niet laat verleiden tot het downloaden van een gratis plugin of theme van verysecurewordpressplugin.ru. Ga daarvoor naar betrouwbare sites als wordpress.org of themeforest.com (commercieel) en lees de reviews, zodat je een indruk krijgt van de kwaliteit van de plugin.

3. Zorg voor de juiste bestandsrechten

Verkeerde bestandrechten kunnen ertoe leiden dat mensen met snode plannen zich toegang kunnen verschaffen tot jouw server. Hier vind je een uitvoerige beschrijving van de bestandsrechten zoals die voorgeschreven worden door WordPress.
Let op: Hoewel de permissie 777 normaal gesproken een absolute no-go is, is het in sommige gevallen noodzakelijk dat de folder /uploads in /wp-content de permissie 777 krijgt. In dat geval is het aan te raden dat om in deze folder een .htaccess-file te plaatsen met de volgende inhoud:

php_value engine off

Dit zorgt ervoor dat php in deze map uitgeschakeld wordt en er dus geen kwaadaardige code geupload kan worden.

4. Verberg de WordPress versie

Zonder veel technische kennis kan achterhaald worden welke versie van WordPress je geïnstalleerd hebt. Een vluchtige blik op de html-code leert je namelijk het volgende:

<meta name="generator" content="WordPress 3.5.1" />

Omdat algemeen bekend is welke veiligheidsrisico’s er bij een bepaalde versie van WordPress horen, zou deze wetenschap dus gebruikt kunnen worden om toegang te krijgen tot de server.
Er zijn een tweetal zaken die je kunt doen om te voorkomen dat mensen het versienummer achterhalen:
1. Verwijder het bestand readme.html uit de root van jouw website.
Omdat dit bestand bij een update van WordPress automatisch weer wordt toegevoegd wordt, is het wellicht beter om ervoor te zorgen dat dit bestand niet meer aangroepen kan worden. Dit doe je door de .htaccess-file te openen en de volgende code toe te voegen:

<files readme.html>
order allow,deny
deny from all
</files>

2. Open het bestand functions.php en voeg de volgende code toe:

function remove_wp_version () {
    return " ";
}
add_filter( 'the_generator', 'remove_wp_version' );

Dit zorgt ervoor dat de versie-informatie niet meer te vinden is in jouw code.

5. Verberg foutmeldingen bij het inloggen

Een nadeel van het standaard WordPress inlog-scherm is dat bij verkeerd inloggen verteld wordt of het een verkeerde gebruikersnaam of een verkeerd wachtwoord betreft. Dit maakt het een stuk gemakkelijker om via een ‘brute force’-aanval toegang te krijgen tot de website.
Om deze functionaliteit uit te zetten open je de file: functions.php in jouw WordPress theme en voeg je de volgende code toe:

function failed_login() {
    return "Uw inloggegevens zijn niet correct";
}
add_filter ( 'login_errors', 'failed_login' );

Dit zorgt ervoor dat gebruikers een algemene foutmelding krijgen.

6. Gebruik .htaccess om wp-config.php te beschermen

Als WordPress gebruiker weet je waarschijnlijk hoe belangrijk de file wp-config.php is. Deze file bevat immers alle informatie die nodig is om toegang te krijgen tot jouw database. Om deze file te beschermen kun je hetvolgende doen:
Open de .htaccess file in de root van jouw website en voeg de volgende code toe:

<files wp-config.php>
order allow,deny
deny from all
</files>

Dit zorgt ervoor dat niemand toegang krijgt tot wp-config.php

7. Installeer de plugin BBQ: Block Bad Queries

Deze plugin zorgt ervoor dat jouw beschermd wordt tegen kwaadaardige URL aanvragen (zoals eval, base64, etc.). Je kunt deze plugin hier vinden.

8. Scherm de map /wp-admin af met een .htaccess-bestand

Het is van belang dat de map /wp-admin, het centrale zenuwstelsel van iedere WordPress website, niet geopend kan worden door mensen met dubieuze bedoelingen. Om te bepalen welke IP-adressen toegang hebben tot deze map, kun je een .htaccess-bestand toevoegen aan de map /wp-admin met de volgende inhoud:

Order Deny,Allow
Deny from all
allow from xxx.xxx.xxx.xx

Vergeet niet om xxx.xxx.xxx.xxx te vervangen door jouw eigen IP-adres.

Update: Om te voorkomen dat plugins, die gebruik maken van Ajax, niet meer werken doordat de map /wp-admin afgeschermd is, kun je de volgende code toevoegen aan het .htaccess-bestand:

<files admin-ajax.php>
order allow,deny
allow from all
</files>

9. Verwijder de gebruiker ‘admin’

Standaard geeft WordPress het administrator-account de naam ‘admin’. Als iemand zou proberen om via een ‘brute force’-aanval toegang te verkrijgen tot jouw website, dan gebeurt dit geheid met de gebruikersnaam: ‘admin’. Je doet er dan ook goed aan om dit te wijzigen in iets anders.

10. Verander de database prefix

Omdat WordPress de standaard databaseprefix /wp_ heeft, hebben de database-tabellen van duizenden WordPress websites exact dezelfde naam. Mocht er op een bepaald moment een veiligheidslek ontstaan in een theme of plugin, dan zullen hackers zich geheid gaan richten op deze database-structuur. Het is dan ook verstandig om bij installatie van jouw WordPress site, deze prefix te veranderen. U opent hiervoor de file wp-config.php en geeft een alternatieve prefix op, zoals:

$table_prefix = 'sitewp_';

Heb je WordPress reeds geïnstalleerd zonder deze prefix te wijzigen? Geen probleem, want dit kun je op ieder willekeurig moment doen. Dat kan handmatig, maar er zijn gelukkig ook plugins die het voor u regelen. Een voorbeeld hiervan is: Change Table Prefix. Let op: zorg ervoor dat je altijd een backup maakt voordat je aan de slag gaat met de database en zorg ervoor dat u de nieuwe prefix ook in wp-config.php verwerkt.

11. Limiteer het aantal login pogingen

Om te voorkomen dat iemand via een ‘brute force’-aanval inloggegevens kan gaan raden, is het een goed idee om het maximaal aantal foutieve login-pogingen te limiteren. De plugin Limit Login Attempts Reloaded is hierbij een goede optie. Wanneer iemand het maximaal aantal (door jou ingestelde) inlogpogingen verbruikt heeft, kan hij/zij een tijd niet meer inloggen. Bovendien worden de IP-adressen geregistreerd dus kan de Sherlock Holmes in jou op zoek naar de namen achter de foutieve inlogpogingen.

Bonus tips

Hoewel de volgende tips niet direct betrekking hebben op de veiligheid van een WordPress website, maken ze het leven van een WordPress beheerder een stuk aangenamer. Doe er dus jouw voordeel mee 🙂

12. Encodeer e-mailadressen

Notoire spammers gebruiken zogenaamde ‘bots’ die websites doorzoeken en e-mailadressen verzamelen. Deze e-mailadressen worden vervolgens tot het einde der tijden voor spam-campagnes misbruikt. Door e-mailadressen te encoderen kunnen ze niet herkend worden door bots en blijf je hopelijk vrij van spam. Een goede plugin die je kunt gebruiken is: Email Address Encoder, een lichtgewicht plugin maar o zo handig.

Heb jij nog een tip die niet in deze lijst mag ontbreken? Wij horen het graag van je!

  • Social media share

    Deel dit artikel op Google+, Facebook of Twitter: Share on Google+Share on FacebookTweet about this on Twitter
  • wordpress

    Wil je meer weten over WordPress?

    Wij vertellen je graag meer over de mogelijkheden van WordPress onder het genot van een kop koffie.