How to

Je WordPress site beveiligen tegen hackers? Zo doe je dat!

0

WordPress is een ontzettend populair CMS. En de verwachting is dat die populariteit de komende jaren alleen maar groeit. Eén systeem voor miljoenen websites, is dat wel veilig? WordPress stond er helaas om bekend een ‘onveilig CMS’ te zijn waar je als hacker zonder problemen binnenkwam. Dat is inmiddels zeker niet meer het geval, maar niets is waterdicht. De grootste kwetsbaarheden van WordPress heb je echter zelf in de hand!

Hoe beveilig ik mijn WordPress website?

Het WordPress CMS is veilig, maar door de duizenden plugins en themes waar WordPress zelf geen zicht op heeft, kan het zijn dat je website onveilig wordt. Het is ook mogelijk dat je WordPress niet goed hebt geïnstalleerd of een slechte gebruikersnaam/wachtwoord-combinatie hebt gekozen.

Ik heb een lijst gemaakt van zeven punten die vaak misgaan als het gaat om de beveiliging van een WordPress website. In dit artikel behandel ik elk punt. Heb jij alle stappen uit dit artikel gevolgd, dan is de kans dat je WordPress website getroffen wordt door een hacker minimaal en heb jij er alles aan gedaan om dit te voorkomen.

  1. Onveilige hosting.
  2. Slechte installatie WordPress.
  3. Slechte gebruikersnaam/wachtwoord combinatie.
  4. Onveilige plugins en themes.
  5. Gedateerde WordPress installatie.
  6. Onjuiste bestandsrechten.
  7. Overbodige bestanden.

Natuurlijk kan het geen kwaad om wat extra’s te doen. Aan het einde van dit artikel geef ik een overzichtje van goede plugins voor de beveiliging van je WordPress website en vertel ik je over preventieve maatregelen die je kunt nemen.

1. Onveilige hosting

Een onveilige website is vaak gevestigd in een onveilige omgeving. De hosting van je WordPress website is erg belangrijk. Niet alleen voor de veiligheid, maar ook voor de snelheid van je website en eventuele support als het misgaat. Ga niet in op gratis hosting of hosting voor een dollar per maand, je zult hier later spijt van krijgen. Dit soort hostingpartijen bieden geen tot weinig support en plaatsen vaak links op je website naar andere websites. Begin er niet aan en schaf een goed hostingpakket aan bij (het liefst) een Nederlandse hostingpartij.

2. Slechte WordPress-installatie

Een goed begin is het halve werk. Zorg voor een volledige en zo optimaal mogelijke installatie van WordPress voordat je met je website aan de slag gaat. Als je al een WordPress website hebt, is het lastig om de volgende punten nog goed te zetten. Doe dit dan ook niet zomaar en vergeet geen backup te maken. Dit is een geavanceerd onderdeel, vraag hulp als je het niet snapt en wijzig niet zomaar dingen in je database!

Gebruik onderstaande kennis als je een nieuwe WordPress website gaat maken: dit kan je een hoop ellende besparen. Bij een goede installatie komen een aantal zaken kijken:

  • Table Prefix.
  • Naam database.
  • Gebruikersnaam & wachtwoord database gebruiker.
  • Salts & Keys.

Wijzig de Table Prefix

De Table Prefix is een veiligheidsmaatregel die al lang in WordPress te vinden is. Het voegt een aantal tekens toe aan het begin van elke tabelnaam in de database van je WordPress website zodat een hacker niet zomaar de juiste naam van een tabel in handen kan krijgen. Normaal ziet de naam van een tabel er zo uit: wp_naam. Een voorbeeld is de tabel met alle gebruikers: wp_users. Dit is de standaard voor WordPress installaties en hackers weten dit.

Als jij de naam van je tabellen echter wijzigt naar (bijvoorbeeld) wp123_users, is de kans dat een hacker de naam van je tabel raadt veel kleiner. Je vindt dit in het wp-config.php bestand van je website, maar ik raad het je af om dit te wijzigen bij een bestaande WordPress website. De kans dat het fout gaat is dan (te) groot!

Gebruik een willekeurige naam voor je database

WordPress heeft een database nodig om te kunnen functioneren en voordat je WordPress kunt installeren, moet je dus een database aanmaken. Gebruik een willekeurige naam bestaande uit kleine letters, hoofdletters en cijfers en voorkom dat de naam van je database gelijk is aan de naam van je website. Dit is niet veilig genoeg!

Kies een random gebruikersnaam & wachtwoord voor je databasegebruiker

In het wp-config.php bestand moet je de naam van je database invullen, net als de gebruikersnaam van de MySQL-gebruiker en het bijbehorende wachtwoord. Zorg ervoor dat zowel de gebruikersnaam als het wachtwoord bestaan uit een willekeurige string van kleine letters, hoofdletters, cijfers en symbolen. Instrallatron, een tool die je kunt gebruiken om een CMS te installeren zonder dat je zelf bestanden hoeft te downloaden (de meeste Nederlandse hosts bieden deze tool gratis aan), doet dit meestal automatisch. Tip: Gebruik de Random String Generator van Random.org om een willekeurige string te maken!

Gebruik unieke salts & keys

Het laatste onderdeel van de WordPress-installatie zijn de salts en keys. Dit zijn regels code die je in het wp-config.php bestand plaatst. Het zijn bepaalde waarden die je WordPress website beveiligen tegen cookie hacks. Het is uitermate belangrijk dat deze waarden uniek zijn! WordPress heeft een generator gemaakt: kopieer de code (elke keer uniek) en plaats deze in het wp-config.php bestand van je WordPress-installatie. Wijzig je salts & keys niet als je al een bestaande WordPress website hebt met salts & keys! Voor de salts & keys geldt ook: Instrallatron vult dit meestal automatisch in.

3. Onveilige gebruikersnaam/wachtwoord

Foto met dank aan Fotolia

Foto met dank aan Fotolia

Je zou het misschien niet zeggen, maar dit is het grootste beveiligingsrisico van elke WordPress website. Niet omdat WordPress gegevens zo onveilig opslaat, maar puur omdat gebruikers van WordPress slechte gebruikersnamen en wachtwoorden kiezen. De gebruikersnaam is vaak admin en het wachtwoord heeft meestal iets met het onderwerp van de website te maken, of het is in de lijst met 20 meest voorkomende wachtwoorden te vinden.

Een aantal tips om je te helpen bij het kiezen van een veilige gebruikersnaam en een goed wachtwoord:

  • Gebruik nooit, maar dan ook nóóit ‘admin’ als gebruikersnaam! Is het hier al te laat voor? Geef het admin account dan dezelfde rechten als een abonnee en maak een nieuw account aan voor de administrator.
  • Gebruik niet de naam van je website als gebruikersnaam of wachtwoord.
  • Zorg dat je wachtwoord uit hoofdletters, kleine letters en cijfers bestaat.
  • Zorg dat je wachtwoord minimaal één speciaal teken bevat (bijvoorbeeld $ of %).
  • Bedenk dat je tegenwoordig ook spaties kunt gebruiken in je wachtwoorden; zo kun je dus een zin maken, bijvoorbeeld: ‘!k k@n z0 33n g03d w8w00rd m@k3n’.
  • Zorg dat je wachtwoord tenminste uit acht tekens bestaat.

4. Onveilige plugins en themes

Over het algemeen geldt: in de WordPress.org directory zijn de plugins en themes veilig. WordPress controleert ze uitvoerig en je kunt deze dus met een gerust hart gebruiken. Het kan echter zo zijn dat er een item tussendoor glipt, maar WordPress-gebruikers melden dit meestal netjes in de vorm van ratings en reviews. Controleer dus eerst de rating, reviews en het aantal downloads voordat je een plugin of theme besluit te gebruiken. Je vindt deze onderdelen op de pagina van de betreffende plugin of theme op WordPress.org.

Overige aanbieders

Er zijn talloze aanbieders van WordPress plugins en themes te vinden en op veel websites kun je gratis WordPress themes downloaden. Pas echter wel op! Het gaat vaak om themes die zijn geïnfecteerd met base64-code of andere kwaadaardige code en dit is schadelijk voor je website.

Enkele veilige aanbieders van WordPress plugins en themes zijn Themeforest (themes), Codecanyon (plugins) WPexplorer (themes), WooThemes (WooCommerce themes) en Elegant Themes (themes).

5. Gedateerde WordPress-installatie

WordPress wordt regelmatig voorzien van een update en het gaat vaak om beveiligingsupdates: updates die bepaalde (veiligheids)lekken dichten. Het is extreem belangrijk dat je WordPress-installatie up-to-date blijft! Na een onveilige gebruikersnaam/wachtwoord-combinatie is dit de meest voorkomende beveiligingsfout als het gaat om WordPress websites. Maak voordat je gaat updaten eerst een backup van je website voor het geval dat het misgaat.

Je kunt WordPress ook automatisch laten updaten (kleine versies), zodat je dit niet steeds handmatig hoeft te doen. Ook voor themes en plugins geldt dat ze geüpdatet moeten zijn voor optimale veiligheid, maar controleer voordat je alles gaat updaten eerst of ze wel met je huidige versie van je WordPress-installatie werken.

6. Onjuiste bestandsrechten

De bestandsrechten van je bestanden moeten standaard op 644 staan. Veel mensen zetten (nadat ze een bestandsrechtenerror hebben gezien) de bestandsrechten van al hun bestanden op 777, maar dit is erg onveilig. De bestandsrechten kun je aanpassen door in te loggen via bijvoorbeeld FTP. Ik raad je aan de volgende getallen over te nemen.

  • root website 755
  • wp-admin 755
  • wp-content 755
  • wp-includes 755
  • .htaccess 644
  • readme.html 400 (of nog beter: verwijderen!)
  • wp-config.php 644
  • wp-admin/index.php 644
  • wp-admin/.htaccess 644

7. Overbodige bestanden

Ook dit is een tip voor gevorderden, begrijp je het niet goed, schakel dan zeker hulp in voor je zelf aan de slag gaat. Bij een automatische WordPress-installatie met bijvoorbeeld Instrallatron blijft het wp-config-sample.php bestaan, terwijl het wp-config.php bestand wel wordt gebruikt. Verwijder het wp-config-sample.php bestand dus uit de root van je website: WordPress gebruikt dit bestand niet.

Houd je versienummer privé

Het is al een lange tijd een discussieonderwerp in de WordPress-wereld: bij elke installatie wordt het readme.html bestand standaard geplaatst. Dit bestand bevat het versienummer van de WordPress-installatie en dat is voor iedereen beschikbaar. Heb jij een WordPress website en wil je controleren of het versienummer van je WordPress-installatie op straat ligt, ga dan naar ‘www.jedomeinnaam.nl/readme.html’. Zie je hier een pagina met je versienummer, verwijder dit bestand dan van je server. Het is nergens voor nodig om je versienummer open en bloot aan de wereld te tonen.

Gebruik speciale plugins voor extra beveiliging

Het WordPress CMS is zoals gezegd veilig en als jij de bovenstaande punten in orde maakt, is de kans dat je website wordt gehackt minimaal. Het kan echter geen kwaad om wat extra beveiligingsmaatregelen in te voeren. Daarbij komen beveiligingsplugins goed van pas.

Wat je in ieder geval moet doen, is een regelmatige backup van je website instellen. Wordt je website getroffen, dan heb je in ieder geval nog een schone versie.

  • iThemes Security – Dit is de populairste WordPress plugin als het gaat om beveiliging. Deze plugin doet enorm veel en maakt zelfs backups van je website. Andere features zijn het aanpassen van de user-ID’s en de URL van het dashboard, het verbergen van foutmeldingen en nog veel meer. De plugin is gratis te downloaden in de WordPress.org plugin directory en heette voorheen Better WP Security.

plugin

  • Wordfence Security – Dit is een populaire, gratis WordPress plugin die je website beveiligt tegen aanvallen. De plugin kan je website scannen op fouten en toont je overzichtelijk welke stappen je nog moet nemen om je website veiliger te maken. De plugin ondersteunt WordPress Multisite en beschermt je website automatisch als deze onder aanval ligt.
  • BulletProof Security – Dit is een plugin die eigenlijk altijd op de 3e plaats staat in dit rijtje, maar toch zeker niet onderschat mag worden. BulletProof Security is meer dan 1,1 miljoen keer gedownload en richt zich vooral op het beschermen van formulieren en andere zwakke punten: XSS, RFI, CRLF, CSRF, Base64, Code Injection en SQL Injection behoren tot de features van deze plugin.

Conclusie

In dit artikel besprak ik de 7 meest voorkomende zwakke plekken in WordPress-installaties. Als je WordPress wil beveiligen tegen hackers raad ik je aan om al deze punten af te werken en een plugin te installeren die je website nog extra beveiligt. Zorg tot slot voor een regelmatige backup van je WordPress website en vergeet je installatie niet bij te werken zodra er een nieuwe versie beschikbaar is. Veel succes!

Foto intro met dank aan Fotolia.