Software Website
17 minuten

Jouw WordPress-website veilig houden? Zo pak je het goed aan

Websitebeveiliging lijkt soms iets voor grote organisaties met enorme budgetten en complete IT-afdelingen. In werkelijkheid is elke website (groot of klein, persoonlijk of zakelijk) een potentieel doelwit. Geautomatiseerde aanvallen speuren dagelijks het internet af naar kwetsbare plekken. Een verouderde plugin, een zwak wachtwoord of een site zonder SSL-certificaat kan al genoeg zijn om binnen te dringen. Het maakt hackers weinig uit wie je bent of hoeveel bezoekers je trekt: als er een kans is, grijpen ze die.

Developer beveiligd een WordPress-website op een dubbele monitor op het moderne kantoor van Wux.

Geschreven door Thijn de Haas

Zwaaiende emoji

Thijn Lead developer

Meer over Thijn

Inhoudsopgave

Waarom websitebeveiliging belangrijk is

Je website is vaak het online gezicht van je bedrijf of project. Een beveiligingslek kan rampzalige gevolgen hebben. Denk aan gestolen klantgegevens, ongewenste aanpassingen aan je content of zelfs een volledig onbereikbare site. Zo’n incident raakt niet alleen jou, maar ook je bezoekers en klanten. Vertrouwen komt te voet en gaat te paard: één datalek kan je reputatie flinke schade toebrengen. Bovendien loop je bij het lekken van persoonlijke gegevens kans op flinke boetes vanwege privacywetten (hallo AVG!).

De meeste hackers kiezen niet bewust jouw site uit, maar gebruiken bots die het web afstruinen op zoek naar veelvoorkomende zwakheden. Een verouderde plugin, een makkelijk wachtwoord of een site zonder SSL en je bent een doelwit, puur omdat je net die ene zwakke schakel hebt.

Behalve het directe gevaar voor data en functionaliteit zijn er meer redenen om je site goed te beveiligen. Zoekmachines zoals Google plaatsen een waarschuwingslabel bij gehackte of onveilige websites en kunnen je zelfs tijdelijk blacklisten. Hierdoor keldert je verkeer en potentiële klanten haken af nog voordat ze je site bezoeken. Ook zorgt HTTPS-versleuteling voor een (klein) voordeel in Google-ranking, terwijl onversleutelde sites juist worden benadeeld. Kortom: een goed beveiligde site beschermt niet alleen tegen kwaadwillenden, maar houdt ook je SEO, uptime en imago gezond. Reden genoeg om er vandaag nog werk van te maken!

Een veilige website in 7 stappen

Hoe pak je websitebeveiliging aan? We hebben het verdeeld in 7 overzichtelijke onderdelen. Volg deze stappen (idealiter allemaal) en je bouwt een stevige verdedigingsmuur om je site heen. Laten we ze één voor één doornemen.

1. Zet een slot op je website-deur

De voordeur van je site (de login) moet op slot met een sleutel die niet te kraken is. Veel hacks beginnen simpelweg met het raden of stelen van inloggegevens. Gebruik daarom altijd een sterk en uniek wachtwoord voor je beheerdersaccount (en eigenlijk voor alle accounts op je site). Een goed wachtwoord is lang (denk aan een zin of een combinatie van willekeurige woorden), bevat cijfers en speciale tekens, en is uniek voor jouw site. Overweeg een wachtwoordmanager om ze veilig te bewaren, dan hoef je ze niet ouderwets op een briefje te schrijven.

Naast sterke wachtwoorden zijn er meer manieren om je login te versterken. Gebruik geen ‘admin’ als gebruikersnaam. Het eerste wat bots proberen is inloggen met de gebruikersnaam “admin” en een lijst makkelijke wachtwoorden. Maak voor elke gebruiker een eigen account aan met een unieke gebruikersnaam. Zo weet je ook altijd wie wat doet, en kun je accounts die niet meer nodig zijn verwijderen.

Activeer ook multi-factor authentication (MFA) op je login. Dit voegt een extra controle toe naast het wachtwoord, bijvoorbeeld een code via een authenticator-app op je telefoon. Zelfs al zou iemand je wachtwoord raden of stelen, zonder die tweede factor komen ze er niet in. Veel moderne CMS’en en plugins bieden MFA-mogelijkheden.

Tot slot kun je overwegen om brute-force aanvallen te dwarsbomen door het aantal loginpogingen te beperken. Met andere woorden: na een paar verkeerde pogingen wordt een IP-adres tijdelijk geblokkeerd. Zo’n functie zit vaak in beveiligingsplugins of kan via je hosting worden ingesteld. Ook het toevoegen van een eenvoudige CAPTCHA op je inlogpagina kan scripts tegenhouden. Kortom, maak het de hackerbots zo moeilijk mogelijk om binnen te dringen.

2. Houd je CMS up-to-date en schoon

Een gezonde website begint bij de basis: zorg dat je CMS (Content Management Systeem) zelf goed beveiligd is. Voor WordPress (maar dit geldt net zo goed voor andere systemen) betekent dat allereerst: updates, updates, updates! Verouderde software is vijand nummer één van veiligheid. Ontwikkelaars brengen niet voor niets regelmatig updates uit; vaak dichten die bekende beveiligingslekken. Staat jouw site nog op een oude versie, dan weet een hacker precies waar jouw zwakke plekken zitten. Update daarom WordPress core, plugins en thema’s zodra er nieuwe versies beschikbaar zijn. Het mooie is dat dit met een paar klikken (of automatisch) kan, terwijl het je zoveel ellende bespaart.

Naast updaten hoort ook opruimen bij een veilige installatie. Verwijder plugins en thema’s die je niet gebruikt. Iets dat uit staat maar wel geïnstalleerd is, kan nog steeds een risico vormen. Installeer bij voorkeur alleen plugins/themes van betrouwbare bronnen (de officiële WordPress-repo of gerenommeerde ontwikkelaars). Een “nulled” premium theme dat je gratis hebt gedownload, kan malware bevatten.

Kijk ook even naar de standaardinstellingen van je CMS. Heeft jouw WordPress-site nog de gebruiker “admin” of de standaard “Hello World” post? Ruim dat op en stel je site goed in voordat je live gaat. Pas bijvoorbeeld de prefix van je database-tabellen aan van wp_ naar iets unieks tijdens de installatie. Dat maakt geautomatiseerde SQL-injectie-aanvallen net weer iets lastiger. Schakel de bestandbewerker in WordPress (waarmee je vanuit het dashboard plugin- en themebestanden kunt bewerken) uit via de wp-config.php (DISALLOW_FILE_EDIT, true). Zo’n maatregel voorkomt dat, mocht een indringer toch in je dashboard komen, hij daar niet vrij in de code kan rommelen.

Zorg er bovendien voor dat cruciale bestanden als wp-config.php en .htaccess niet toegankelijk zijn voor buitenstaanders. Je kunt bijvoorbeeld in je .htaccess aangeven dat wp-config.php niet via het web benaderd mag worden. Veel security plugins doen dit automatisch voor je. Draait jouw site op een eigen server of VPS? Dan is het verstandig om de bestandsrechten goed te zetten (meestal 644 voor bestanden, 755 voor mappen in WordPress) en geen onnodige schrijf- of leesrechten te geven. Als dit abracadabra voor je is, schakel dan je hoster of webbouwer in. Zij kunnen eenvoudig checken of jouw installatie “hardended” is volgens best practices.

Draai tot slot op een veilige hostingomgeving en up-to-date serversoftware. Een goede host zorgt ervoor dat de server zelf up-to-date is (bijvoorbeeld met recente PHP-versies en beveiligingspatches) en afgeschermd tegen aanvallen. Gebruik bij voorkeur PHP 8.x of hoger en vermijd verouderde PHP-versies die geen beveiligingsupdates meer krijgen. Zo, met een schone, up-to-date installatie leg je een solide fundament waar hackers een harde dobber aan hebben.

Jonge developer werkt aan code voor Wordpress beveiliging op het moderne kantoor van Wux.

3. Je digitale waakhond

Je alarm installeren is de volgende stap. Een goede beveiligingsplugin fungeert als een digitale waakhond op je website. Zo’n plugin kan allerlei handige taken uitvoeren, zoals verdachte activiteiten detecteren, kwaadaardige IP-adressen blokkeren, scannen op malware en je een seintje geven als er iets verdachts gebeurt. Zie het als een extra slot en alarm op je site.

Er zijn verschillende beveiligingsplugins beschikbaar (zowel gratis als betaald) die je makkelijk aan WordPress kunt toevoegen. De precieze keuze laten we aan jou, maar kenmerken om op te letten zijn bijvoorbeeld een firewall die gevaarlijk verkeer blokkeert, live monitoring van je bestanden (zodat je weet als er ergens onverwachts in geknoeid is), login-beveiliging (zoals 2FA en login attempt limiting) en malware-scans. Veel plugins bieden een alles-in-één pakket aan functionaliteiten. Het fijne is dat ze vaak ook niet-technische gebruikers inzicht geven in wat er speelt: een goed dashboard met meldingen (“20 malware files removed” of “5 login attempts blocked”) kan je een hoop gemoedsrust geven.

Hoewel we hier geen specifieke pluginnamen hoeven te droppen, kun je denken aan bekende opties die al jaren hun strepen hebben verdiend. Het belangrijkste is dat je er ten minste één installeert en goed instelt. Vaak betekent dat een kwestie van een wizard doorlopen of een paar vinkjes zetten voor de gewenste beveiligingsregels. Vergeet niet de plugin zelf ook up-to-date te houden en af en toe te kijken wat hij eigenlijk tegenhoudt. En mocht er onverhoopt iets misgaan ondanks al je maatregelen, dan zul je blij zijn dat je plugin het (hopelijk) heeft opgemerkt en je direct waarschuwt.

4. Je reddingslijn bij noodgevallen

Backup, backup, backup! We kunnen het niet genoeg benadrukken. Hoe goed je beveiliging ook is, 100% veiligheid bestaat niet. Dan is het een enorme troost als je een recente backup achter de hand hebt. Een backup is eigenlijk je ultieme vangnet: als er iets fout gaat, kun je met een backup je site terugzetten naar een werkende toestand. Zonder backup is een hack vaak een ramp; met backup is het hooguit even schrikken en vervelend, maar binnen no-time draai je weer.

Zorg dus voor regelmatige backups van je volledige site: zowel de bestanden als de database. Hoe vaak “regelmatig” is, hangt af van hoe vaak je site verandert. Voor een statische site is eens per week wellicht genoeg, voor een drukbezochte webshop met dagelijkse orders zijn dagelijkse (of realtime) backups geen overbodige luxe. Een goede richtlijn: maak minstens wekelijks een backup, en vooral voor je grote wijzigingen doorvoert (zoals updates of nieuwe features).

De opslag van je backups is ook belangrijk. Bewaar ze extern, dus niet alleen op dezelfde server als je website. Stel dat de hele server uitvalt of gehackt wordt, dan heb je pech als de enige backup daar ook op stond. Gebruik bijvoorbeeld cloudopslag (zoals Dropbox of Google Drive) of de backup-opslag van je hostingprovider. Veel hostingpakketten bevatten standaard al een dagelijkse backup. Voor WordPress bestaan ook handige backup-plugins die automatisch backups maken en naar een externe locatie sturen.

Maak er tevens een gewoonte van om af en toe te testen of je backup echt werkt. Niets is zo frustrerend als een backup terugzetten en ontdekken dat hij incompleet of corrupt is.

Beveilig je backups zelf ook. Dat klinkt misschien vreemd, maar een backup bevat alle gevoelige data van je site. Je wilt niet dat een hacker dat bestand in handen krijgt. Versleutel eventueel je backupbestanden of bescherm ze met een wachtwoord wanneer je ze opslaat. Laat geen onbeveiligde backup-zip publiekelijk op je server staan. Sommige backup-tools bieden de optie om backups versleuteld op te slaan. Met regelmatige, goed beschermde backups heb je altijd een uitweg, mocht het toch misgaan. Het is je reddingslijn die ervoor zorgt dat een hack of crash niet het einde van de wereld betekent voor je website.

Twee programmeurs van Wux werken samen aan webbeveiliging van een WordPress-website.

5. Versleutel de verbinding voor veiligheid

Bezoekers van je site moeten erop kunnen vertrouwen dat hun verbinding veilig is. Een SSL-certificaat (tegenwoordig vrijwel altijd TLS genaamd) zorgt voor die versleutelde verbinding en is te herkennen aan het “https://” en het hangslotje in de adresbalk. Met SSL worden gegevens die tussen jouw site en de gebruiker verstuurd worden, versleuteld. Denk aan inloggegevens, contactformulieren of betaalinformatie. Zonder SSL kunnen kwaadwillenden vrij eenvoudig meekijken met ongecodeerde gegevens. Met SSL is dat praktisch onmogelijk, want de data is onleesbaar voor pottenkijkers.

Naast beveiliging heeft SSL een aantal fijne bijwerkingen. Moderne browsers markeren sites zonder SSL als “niet beveiligd” en dat schrikt bezoekers af. Omgekeerd straalt een hangslotje vertrouwen uit: je laat zien dat je professioneel met data omgaat. Bovendien is sinds enkele jaren HTTPS een lichte factor in Google’s rankingalgoritme: websites met SSL krijgen voorrang op vergelijkbare sites zonder. Je snijdt jezelf dus in de vingers als je nog op HTTP zit, zowel qua vertrouwen van je publiek als op het gebied van SEO.

Gelukkig is er geen excuus meer om geen SSL te gebruiken. Certificaten zijn goedkoop of zelfs gratis verkrijgbaar (dankzij initiatieven als Let’s Encrypt). De meeste hostingproviders bieden met één klik de installatie van een Let’s Encrypt-certificaat aan. Doe dat meteen als je de site live zet. Heb je een WordPress-site, overweeg dan ook een plugin zoals Really Simple SSL die helpt alle inhoud via https te laden en eventuele mix-content problemen op te lossen. Vergeet niet om ook een 301-redirect in te stellen van http naar https, zodat echt al het verkeer de veilige route neemt.

6. Dicht alle digitale achterdeurtjes

Beveiliging is zo sterk als de zwakste schakel. Je kunt WordPress nog zo goed beveiligen; als je elders een deur open laat, kan een hacker alsnog binnenkomen. Denk daarom breder dan alleen je CMS. Welke toegangspunten zijn er allemaal tot jouw website en server, en hoe kun je die afschermen?

Een belangrijk punt is de toegang tot je hostingomgeving. Heb je een controlepaneel (bijvoorbeeld cPanel of Plesk) of FTP/SSH-toegang? Beveilig die dan net zo sterk als je website-login. Gebruik sterke, unieke wachtwoorden (ook voor je database-gebruikers!). Schakel waar mogelijk 2FA in op je hostingaccount. En gebruik bij voorkeur SFTP of SSH in plaats van onversleutelde FTP, zodat inloggegevens niet als platte tekst over het internet gaan. Mocht je gebruikmaken van een externe beheerder of ontwikkelaar, geef die dan een eigen account en trek de rechten in zodra de samenwerking klaar is.

Bekijk ook de gebruikersrollen binnen je website. Niet iedereen hoeft een administrator te zijn: geef gebruikers alleen de rechten die ze nodig hebben. Iemand die alleen content plaatst kan prima de rol “Editor” krijgen in WordPress in plaats van “Beheerder”. Daarmee voorkom je dat een indringer met een gehackt gebruikersaccount meteen volledige controle over de site krijgt. Loop periodiek je gebruikerslijst na en verwijder accounts die niet (meer) nodig zijn.

Heb je een test- of staging-omgeving online staan? Zorg dat die afgeschermd is met een wachtwoord of IP-filter, of haal hem weg als je ‘m niet actief gebruikt. Testomgevingen worden vaak vergeten en niet geüpdatet, en vormen zo een makkelijk doelwit voor hackers om binnen te dringen en via daar door te stoten naar je live site. Dus ook de “verborgen” hoekjes van je online aanwezigheid verdienen aandacht.

Denk ook aan de veiligheid van je eigen apparaat en netwerk. Het klinkt misschien vergezocht, maar als jouw laptop vol malware staat, kan een hacker via een keylogger zo je inloggegevens stelen. Gebruik dus ook op je pc een goede virusscanner en houd software up-to-date. Log je vaak in vanaf openbare WiFi? Overweeg dan een VPN te gebruiken, zodat zelfs op een onveilig netwerk je verkeer versleuteld is. Klik niet zomaar op rare mailtjes of links die vragen om je wachtwoord in te voeren (phishing!). Jij en eventueel je team maken óók deel uit van de beveiligingsketen. Houd iedereen alert en bewust.

Programmeur schrijft en test beveiligingscode op dubbele monitor om websites te beschermen tegen hacks.

7. Blijf opletten en grijp snel in

Je hebt nu van alles ingericht om aanvallen buiten de deur te houden, maar beveiliging is geen set-and-forget-klus: monitoring is essentieel. Houd in de gaten wat er op je site gebeurt, zodat je snel kunt ingrijpen als er iets mis dreigt te gaan.

Gelukkig hoef je niet 24/7 zelf naar je site te staren. Veel van de eerder genoemde beveiligingsplugins en tools kunnen je helpen monitoren. Ze sturen bijvoorbeeld een e-mail als er een kritieke update beschikbaar is, als iemand probeert in te breken of als er malware wordt gevonden. Zorg dat die notificaties naar een mailbox gaan die je ook écht in de gaten houdt. Je wilt zo’n melding niet wekenlang ongelezen laten!

Daarnaast loont het om regelmatig zelf te checken. Klik bijvoorbeeld eens per week even rond op je eigen site alsof je een bezoeker bent. Valt je iets vreemds op, zoals plotseling trage laadtijden, ongewenste pop-ups of content die je niet herkent (bijvoorbeeld links naar dubieuze sites)? Dat zijn potentiële tekenen van een hack. Ook een melding in Google of een waarschuwing van je browser is een duidelijk alarmbelletje.

Bekijk zo nu en dan de logbestanden van je site of server. Veel hosts bieden logaccess of een security log in het control panel. Hier kun je bijvoorbeeld zien of er ongebruikelijk veel foutieve loginpogingen zijn (teken van een brute force aanval), of dat er duizenden verzoeken uit één vreemd land op één dag kwamen (teken van een mogelijke DDoS of hackpoging). Ook foutmeldingen in error logs kunnen wijzen op gekke activiteiten. Klinkt technisch? Vraag eventueel je host of ze opvallende dingen zien in je logbestanden, of gebruik een plugin die basislogboekhoudingen inzichtelijk maakt.

Belangrijk is ook dat je een actieplan hebt voor als er toch iets fout gaat. Weet jij wat je moet doen als morgen je site gehackt is? Wie ga je bijvoorbeeld bellen of mailen? Heb je de contactgegevens paraat? Heb je je backups klaar liggen? Het klinkt als overkill, maar wanneer je voorbereid bent, kun je kostbare minuten of uren winnen en de schade beperken. Hackers zijn het meest effectief als hun acties onopgemerkt blijven of als slachtoffers in paniek niks doen. Door alert te blijven en snel te reageren, kun je een hoop ellende voorkomen.

Ervaren programmeur van Wux analyseert serverlogbestanden om kwetsbaarheden te detecteren en WordPress webbeveiliging te verbeteren.

Eerste Hulp bij een gehackte site

Ondanks al je voorzorgmaatregelen kan het onverhoopt misgaan: je site is gehackt. Paniek? Probeer kalm te blijven en volg deze beknopte eerste hulp gids. Snel en doortastend handelen kan de schade beperken.

  • Stap 1: Zet je site offline
    Voorkom verdere schade door je website tijdelijk uit te schakelen. Gebruik maintenance mode of zet hem via je hostingpanel helemaal uit. Beter kort offline dan dat malware zich verspreidt.
  • Stap 2: Wijzig alle wachtwoorden
    Ga ervan uit dat inloggegevens zijn buitgemaakt. Verander direct de wachtwoorden van je CMS, hosting, database, FTP/SSH en alle gebruikersaccounts. Gebruik unieke, sterke wachtwoorden.
  • Stap 3: Verwijder malware
    Spoor op wat gehackt is via je beveiligingsplugin of file manager. Let op verdachte bestanden of gewijzigde code en verwijder deze. Verwijder ook ongewenste gebruikersaccounts, plugins en thema’s.
  • Stap 4: Herstel en update
    Zet indien nodig een schone backup terug en update daarna alles naar de nieuwste versies. Controleer configuratiebestanden en test of je site weer volledig schoon en functioneel is.
  • Stap 5: Beveilig en monitor
    Voer direct extra maatregelen door, zoals 2FA en extra monitoring. Informeer betrokkenen bij een datalek en blijf je site en logbestanden de komende weken extra controleren.

Niemand zit te wachten op een gehackte site, maar door kalm en systematisch te werk te gaan kun je vaak succesvol herstellen.

Zet vandaag de stap naar een veilige website

Websitebeveiliging is een doorlopend proces. Maar met de inzichten en stappen uit dit blog heb je alle tools in handen om je site flink wat veiliger te maken. Elke maatregel (hoe klein ook) verkleint de kans dat jij het volgende slachtoffer wordt van een hack.

Nu is het aan jou. Ga stap voor stap aan de slag met je eigen site. Loop de checklist langs, installeer die updates, voer die backups uit en stel die 2FA in. Je zult merken dat het best meevalt en misschien zelfs een geruststellend gevoel geeft: jij hebt de controle.

Zoek je een goede en betrouwbare hostingpartner die jouw website veilig houdt? Neem dan contact met ons op! We denken graag met je mee en zorgen dat jouw site altijd de beste beveiliging krijgt.

Thijn de Haas Lead developer

Meer over Thijn

Mijn programmeeravontuur begon rond mijn twaalfde, toen ik ontdekte dat je met code vrijwel alles kunt maken. Ik begon met het bouwen van kleine projecten en startte al snel mijn eigen hostingdienst, wat me veel leerde over maatwerkcode, serverbeheer en het koppelen aan websites. Deze kennis pas ik nu dagelijks toe in mijn werk aan websites en applicaties.

Als student Applicatieontwikkelaar liep ik drie stages bij Wux, waarbij ik tijdens de eerste stage mijn eerste bedrijf startte, deels op advies van Bo. Deze ervaringen vormden het fundament van mijn rol als lead developer en mede-eigenaar van Wux. Met een constante interesse in nieuwe technieken en het meedenken naar de beste oplossingen, zet ik mijn expertise dagelijks in om complexe vraagstukken op te lossen samen met mijn team.