Security Headers uitgelegd: bescherm uw website in 5 stappen
Security headers zijn een van de makkelijkste manieren om uw website beter te beveiligen. In deze praktische handleiding leggen we uit wat elke header doet en hoe u ze implementeert.
Whitehat Security Team
Security Experts
Wat zijn Security Headers?
Security headers zijn HTTP response headers die uw webserver meestuurt naar de browser. Ze geven de browser instructies over hoe om te gaan met de content van uw website. Door de juiste headers in te stellen, beschermt u uw bezoekers tegen veel voorkomende aanvallen.
Het goede nieuws: Security headers zijn relatief eenvoudig te implementeren en hebben direct effect. In deze handleiding laten we stap voor stap zien hoe u de belangrijkste headers instelt.
Waarom zijn Security Headers belangrijk?
Bij onze security scans zien we dat 78% van alle websites ontbrekende of verkeerd geconfigureerde security headers heeft. Dit maakt deze websites kwetsbaar voor:
- Clickjacking: Aanvallers plaatsen uw site in een onzichtbaar iframe
- XSS aanvallen: Kwaadaardige scripts die in de browser van bezoekers draaien
- Man-in-the-middle: Onderscheppen van verkeer door ontbrekende HTTPS
- Data lekkage: Gevoelige informatie die naar derden wordt gestuurd
Stap 1: Strict-Transport-Security (HSTS)
Wat doet deze header?
HSTS (HTTP Strict Transport Security) forceert browsers om alleen via HTTPS te communiceren met uw website. Dit voorkomt:
- Downgrade attacks (van HTTPS naar HTTP)
- SSL stripping aanvallen
- Man-in-the-middle aanvallen
Implementatie
Voor Apache voegt u de volgende regel toe aan uw .htaccess bestand:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Voor Nginx voegt u toe aan uw server block:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
Parameters uitgelegd
- max-age=31536000: Browser onthoudt dit 1 jaar (in seconden)
- includeSubDomains: Geldt ook voor alle subdomeinen
- preload: Kwalificeert voor Chrome HSTS preload lijst
Let op: Zorg dat uw hele website goed werkt via HTTPS voordat u deze header activeert.
Stap 2: Content-Security-Policy (CSP)
Wat doet deze header?
CSP is de krachtigste security header. Het definieert welke bronnen (scripts, styles, images) uw website mag laden. Dit is uw belangrijkste verdediging tegen XSS aanvallen.
Basisimplementatie
Start met een restrictief beleid en versoepel waar nodig. Een basis CSP ziet er als volgt uit:
default-src self; script-src self; style-src self unsafe-inline; img-src self data: https:; font-src self; connect-src self; frame-ancestors none;
CSP Directives uitgelegd
| Directive | Controleert |
|---|---|
| default-src | Fallback voor alle resource types |
| script-src | JavaScript bronnen |
| style-src | CSS bronnen |
| img-src | Afbeeldingen |
| font-src | Lettertypen |
| connect-src | AJAX, WebSocket, EventSource |
| frame-ancestors | Wie mag uw site in een frame laden |
| form-action | Waar formulieren naartoe mogen posten |
Tips voor CSP implementatie
- Start met Report-Only mode om te monitoren zonder te blokkeren
- Wees specifiek - vermijd unsafe-inline en unsafe-eval waar mogelijk
- Test grondig - CSP kan functionaliteit breken als het niet goed is geconfigureerd
Stap 3: X-Content-Type-Options
Wat doet deze header?
Deze header voorkomt MIME type sniffing. Zonder deze header kunnen browsers het content type "raden", wat kan leiden tot security issues.
Implementatie
Voor Apache:
Header always set X-Content-Type-Options "nosniff"
Voor Nginx:
add_header X-Content-Type-Options "nosniff" always;
Deze header is simpel - er is maar een waarde: nosniff.
Stap 4: X-Frame-Options
Wat doet deze header?
X-Frame-Options beschermt tegen clickjacking door te bepalen of uw website in een iframe mag worden geladen.
Implementatie
Voor Apache:
Header always set X-Frame-Options "DENY"
Voor Nginx:
add_header X-Frame-Options "DENY" always;
Opties
| Waarde | Betekenis |
|---|---|
| DENY | Nooit in een frame laden |
| SAMEORIGIN | Alleen door dezelfde origin |
| ALLOW-FROM uri | Alleen door specifieke URI (verouderd) |
Aanbeveling: Gebruik DENY tenzij u een specifieke reden heeft om frames toe te staan.
Stap 5: Referrer-Policy en Permissions-Policy
Referrer-Policy
Controleert hoeveel referrer informatie wordt meegestuurd naar andere websites.
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Permissions-Policy
Bepaalt welke browser features uw website mag gebruiken (camera, microfoon, locatie, etc.).
Header always set Permissions-Policy "geolocation=(), microphone=(), camera=(), payment=(), usb=()"
Complete configuratie voorbeeld voor Apache
Voeg het volgende toe aan uw .htaccess bestand:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "DENY"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "geolocation=(), microphone=(), camera=()"
Testen van uw Security Headers
Online tools
- SecurityHeaders.com - Geeft een letter-grade en gedetailleerde analyse
- Mozilla Observatory - Uitgebreide security check
- Onze gratis scanner - Controleert security headers als onderdeel van 50.000+ checks
Browser DevTools
- Open DevTools (F12)
- Ga naar Network tab
- Selecteer het eerste request (uw domein)
- Bekijk de Response Headers
Veelvoorkomende problemen en oplossingen
"Mijn website werkt niet meer na CSP implementatie"
Oorzaak: Te restrictief beleid blokkeert noodzakelijke resources.
Oplossing:
- Start met CSP-Report-Only mode
- Monitor welke resources worden geblokkeerd
- Voeg specifieke bronnen toe aan de whitelist
- Schakel pas over naar enforced mode als alles werkt
"Headers worden niet toegepast"
Mogelijke oorzaken:
- mod_headers niet geactiveerd in Apache
- .htaccess wordt genegeerd (AllowOverride)
- CDN cached oude headers
Oplossingen:
- Activeer mod_headers en herstart Apache
- Check AllowOverride configuratie
- Purge CDN cache
Conclusie
Security headers zijn een van de meest effectieve en goedkoopste manieren om uw website te beveiligen. Met de configuraties in dit artikel bent u goed beschermd tegen veel voorkomende aanvallen.
Samenvatting acties:
- Implementeer HSTS (na HTTPS check)
- Configureer CSP (start met Report-Only)
- Voeg X-Content-Type-Options toe
- Stel X-Frame-Options in
- Configureer Referrer-Policy en Permissions-Policy
- Test met online tools
- Monitor en verfijn regelmatig
Wilt u weten hoe uw website scoort? Onze gratis security scan controleert automatisch al uw security headers en geeft concrete verbeterpunten.
Wilt u weten hoe veilig uw website is?
Start direct met onze gratis security scan en ontvang binnen minuten inzicht in uw kwetsbaarheden.
Over Whitehat Security Team
Security Experts
Het Whitehat Security team bestaat uit ervaren security professionals met jarenlange ervaring in het beschermen van Nederlandse bedrijven tegen cyberdreigingen. Wij delen onze kennis om het MKB te helpen veiliger te worden.