Basisbeveiliging die het verschil maakt
De meeste websiteaanvallen richten zich niet op geavanceerde zero-day exploits, maar op basiskwetsbaarheden: ontbrekende updates, zwakke wachtwoorden en verkeerd geconfigureerde servers. Deze 10 stappen dekken de fundamenten af en beschermen u tegen het overgrote deel van veelvoorkomende aanvallen.
Stap 1: HTTPS afdwingen
HTTPS versleutelt alle communicatie tussen de browser en uw server. Zonder HTTPS kunnen aanvallers wachtwoorden, formuliergegevens en sessiecookies onderscheppen.
Acties:
- Installeer een SSL/TLS-certificaat (Let's Encrypt is gratis)
- Configureer een HTTP-naar-HTTPS redirect (301)
- Activeer HSTS (HTTP Strict Transport Security)
# nginx voorbeeld
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
}
Controleer: bezoek uw site en verifieer het slotje in de adresbalk. Test via SSL Labs (ssllabs.com) voor een uitgebreid rapport.
Stap 2: Software updaten
Verouderde software is de belangrijkste ingang voor aanvallers. CMS-systemen, plugins, frameworks en servercomponenten moeten up-to-date zijn.
Acties:
- Activeer automatische updates waar mogelijk
- Controleer wekelijks op beschikbare patches
- Verwijder ongebruikte plugins en thema's
- Abonneer op beveiligingsmailings van uw softwareleveranciers
Stap 3: Security headers instellen
HTTP security headers instrueren de browser hoe uw website moet worden behandeld. Ze zijn eenvoudig te implementeren en bieden sterke bescherming.
| Header | Bescherming |
|---|---|
| Content-Security-Policy | Voorkomt XSS en code-injectie |
| X-Content-Type-Options: nosniff | Voorkomt MIME-sniffing |
| X-Frame-Options: DENY | Voorkomt clickjacking |
| Referrer-Policy: strict-origin-when-cross-origin | Beperkt doorgifte van referrer-informatie |
| Permissions-Policy | Beperkt toegang tot browser-API's (camera, microfoon, geolocatie) |
Stap 4: Sterke wachtwoorden en MFA
Zwakke wachtwoorden zijn verantwoordelijk voor een groot deel van succesvolle inbraken.
Acties:
- Minimaal 12 tekens, mix van hoofd/kleine letters, cijfers en speciale tekens
- Uniek wachtwoord per account (gebruik een wachtwoordmanager)
- Multi-factor authenticatie (MFA) voor alle beheeraccounts
- Wijzig standaardwachtwoorden van CMS, databases en server
Stap 5: Back-ups configureren
Een betrouwbare back-up is uw laatste verdedigingslinie bij ransomware, hacking of serverfalen.
Acties:
- Dagelijkse automatische back-ups
- Bewaar back-ups op een aparte locatie (niet dezelfde server)
- Test regelmatig of back-ups daadwerkelijk te herstellen zijn
- Bewaar meerdere versies (minimaal 30 dagen terug)
- Versleutel back-ups
Stap 6: Inputvalidatie implementeren
Ongevalideerde gebruikersinvoer is de basis van de meeste aanvallen: SQL-injectie, XSS, command injection.
Principes:
- Valideer alle invoer serverzijdig (clientzijde validatie is aanvullend, niet voldoende)
- Gebruik parameterized queries voor database-interactie
- Sanitize output — escape HTML-tekens bij weergave
- Beperk invoerlengte en -type
Stap 7: Toegangsbeheer beperken
Het principle of least privilege: geef gebruikers alleen de rechten die ze nodig hebben.
Acties:
- Beperk admin-toegang tot noodzakelijke personen
- Gebruik rollen en rechten (editor vs. admin vs. viewer)
- Verwijder oud-medewerkers direct uit alle systemen
- Beperk IP-adressen voor admin-panelen waar mogelijk
- Log alle aanmeldpogingen
Stap 8: Bestandsuploads beveiligen
Bestandsuploads zijn een veelgebruikt aanvalspad als ze niet correct zijn beveiligd.
Acties:
- Valideer bestandstype op basis van inhoud (magic bytes), niet alleen extensie
- Beperk maximale bestandsgrootte
- Sla uploads op buiten de webroot
- Hernoem geüploade bestanden
- Scan uploads op malware
Stap 9: Monitoring en logging
Zonder monitoring merkt u een inbraak pas als het te laat is. De gemiddelde detectietijd van een breach is wereldwijd 204 dagen.
Acties:
- Activeer serverlogs (access logs en error logs)
- Monitor op verdachte patronen (brute force pogingen, onbekende IP's, foutcodes)
- Stel alerts in voor kritieke gebeurtenissen
- Overweeg een WAF (Web Application Firewall)
- Bewaar logs minimaal 90 dagen
Stap 10: Regelmatig scannen en testen
Beveiliging is geen eenmalige actie maar een doorlopend proces.
Acties:
- Voer maandelijks een vulnerability scan uit
- Test na elke significante wijziging
- Overweeg jaarlijks een penetratietest
- Controleer regelmatig uw security headers en SSL-configuratie
Prioriteitenmatrix
| Stap | Impact | Moeite | Prioriteit | |---|---|---|---| | HTTPS afdwingen | Hoog | Laag | Direct | | Software updaten | Hoog | Laag | Direct | | Security headers | Hoog | Laag | Direct | | Sterke wachtwoorden + MFA | Hoog | Laag | Direct | | Back-ups | Hoog | Gemiddeld | Week 1 | | Inputvalidatie | Hoog | Gemiddeld | Week 1-2 | | Toegangsbeheer | Gemiddeld | Laag | Week 1 | | Bestandsuploads | Gemiddeld | Gemiddeld | Week 2 | | Monitoring | Gemiddeld | Gemiddeld | Week 2-3 | | Regelmatig scannen | Gemiddeld | Laag | Doorlopend |
Compliance en Nederlandse wetgeving
Het implementeren van deze 10 stappen is niet alleen technisch verstandig — het is ook een concrete stap richting compliance met Nederlandse en Europese wetgeving. De Cyberbeveiligingswet (NIS2-implementatie) vereist dat organisaties in kritieke sectoren passende beveiligingsmaatregelen treffen. De AVG (GDPR) verplicht organisaties die persoonsgegevens verwerken tot het nemen van adequate technische maatregelen (art. 32).
Het NCSC en het Digital Trust Center (DTC) bieden gratis hulpmiddelen voor Nederlandse organisaties. De DTC-basisscan toetst uw organisatie aan de vijf basisprincipes van veilig digitaal ondernemen, die nauw aansluiten bij de stappen in deze gids.
Volgende stappen
Deze 10 stappen vormen de basis. Voor een uitgebreidere beoordeling kunt u uw website automatisch laten scannen op OWASP-kwetsbaarheden, ontbrekende headers en compliance-issues.
Scan uw website gratis met WarDek — OWASP, NIS2, AVG, AI Act compliance in één scan.