Dit artikel is inmiddels bijna tien jaar gelezen geschreven en met name de tekst in de eerste paragraaf is niet meer actueel. Ik adviseer je dan ook om ook dit, recentere, artikel te lezen.
Hoe is het met de veiligheid van WordPress gesteld?
Regelmatig krijg ik vragen van (aanstaande) WordPress gebruikers, hoe veilig WordPress eigenlijk is en hoe goed het beveiligd is tegen hackers. Eigenlijk is deze vraag onmogelijk te beantwoorden, want de veiligheid van je website is niet alleen afhankelijk van de veiligheid van het CMS wat je gebruikt, maar ook van een aantal andere factoren: Hoe veilig is bijvoorbeeld de server waarop je website staat en hoe goed ga jij om met de beveiliging van je eigen PC, waarmee je regelmatig op je WordPress site inlogt?
Wat we in ieder geval wel met zekerheid kunnen zeggen, is dat WordPress één van de veiligere CMS systemen is. Echter, elk thema en iedere plugin kan een potentieel veiligheidsrisico introduceren en zonder plugins en thema’s is er met WordPress weinig te beleven. Nu is het wel zo, dat de ontwikkelaars van de langer in de markt zijnde plugins zich vaak goed bewust zijn van de veiligheidsrisico’s en de meeste ‘lekken’ (of ‘exploits’ zoals ze ook vaak mooi genoemd worden) gedicht hebben, maar ontwikkelaars zijn ook maar mensen en mensen maken nu eenmaal fouten.
De meest voorkomende hacks van websites -niet alleen WordPress websites- hebben echter heel andere oorzaken. Namelijk een slechte beveiliging aan de kant van de server of een slechte beveiliging aan de kant van het werkstation. En dit zijn beide zaken, waar jij direct invloed op uit kunt oefenen.
Beveiliging van de server
Wanneer je, zoals de meesten, gebruik maakt van een shared server is de meest voorkomende oorzaak van het ‘hacken’ van het systeem een misplaatste zuinigheid van de hoster. Het is namelijk mogelijk om PHP, de programmeertaal waar WordPress in geschreven is, op twee manieren door je webserver uit te laten voeren, als ‘Apache Module’ of als ‘CGI proces’. Wat het verschil technisch is, zal je waarschijnlijk weinig interesseren, maar de belangrijkste reden, dat je hoster dit als ‘Apache Module’ uit zou willen voeren, is omdat dit geheugen spaart en hij dus meer klanten op een machine kan zetten. Het nadeel is echter, dat er vrijwel geen sprake van beveiliging is.
Draaiend als ‘Apache Module’ kan een PHP programma namelijk alle informatie lezen, waar het webserver programma (Apache) toegang toe heeft. Als iemand met een account op dezelfde server dus raadt, beredeneert of er per toeval achterkomt, waar op de server jouw site is geinstalleerd, kan hij zichzelf toegang verschaffen tot bestanden met belangrijke gegevens, zoals bijvoorbeeld het bestand waarin het wachtwoord voor de database is opgeslagen. Wanneer PHP draait als een CGI proces, heeft -als je hoster het tenminste allemaal goed heeft ingesteld- PHP alleen toegang tot de bestanden die voorkomen in de folders die horen bij het account van degeen die is ingelogged. Het is dus ondenkbaar, dat een slechtwillende medegebruiker van de server vervelende dingen met jouw site gaat doen.
Maar dat is natuurlijk allemaal leuk, maar hoe weet jij nu op welke manier PHP op jouw server is geinstalleerd? De makkelijkste manier is het -vooral als je nog bezig bent een hoster te vinden- dit gewoon te vragen. Natuurlijk is het ook altijd goed om -wanneer je de site al geinstalleerd hebt staan- dit zelf te controleren. Dit kun je eigenlijk heel eenvoudig doen: Installeer of update eens een plugin. Wanneer je een gebruikersnaam en wachtwoord in moet geven om een plugin te installeren, betekent dit eigenlijk, dat PHP op de machine als Apache Module geinstalleerd staat en dus potentieel onveilig is. Wordt de plugin direct geinstalleerd, draait PHP als een CGI proces, wat wil zeggen, dat het veiliger is.
Natuurlijk wordt de veiligheid van je server, en daarmee de veiligheid van je WordPress site, door meer factoren bepaald. Maar zelf zou ik nooit een hosting account nemen, bij een hoster die anderen toestaat vertrouwelijke gegevens in mijn folders te lezen (dus een hoster die gebruik maakt van PHP als Apache Module).
Overigens, als je een eigen server hebt, die je helemaal zelf beheert, of je hebt een virtuele prive-server, dan gaat bovenstaand verhaal niet op: Omdat jij de enige op de machine bent, heb je met deze vorm van onveiligheid niets te maken.
Volgende week ga ik nader in op de beveiliging van je werkstation (oftewel je eigen PC).