Kennisbank
Security & onderhoud
HTTP-securityheaders instellen
HTTP-securityheaders zijn instructies die je server meestuurt aan de browser, zoals: gebruik altijd HTTPS (Strict-Transport-Security), raad geen bestandstypen (X-Content-Type-Options), laat de pagina niet in een frame op een andere website laden (frame-ancestors of X-Frame-Options), deel beperkt de herkomst (Referrer-Policy) en laad alleen scripts van toegestane bronnen (Content-Security-Policy). Stel ze in via je server, hosting, CDN of plugin, begin met de eenvoudige headers en test een CSP eerst in een rapportagemodus.
Bij elke pagina die je server levert, gaan er onzichtbare instructies mee naar de browser: de HTTP-headers. Een deel daarvan gaat over beveiliging. Ze helpen aanvallen zoals clickjacking en cross-site scripting te beperken. Instellen is vaak een kwestie van een paar regels configuratie, maar sommige headers kunnen je website breken als je ze te streng instelt. Zie ook de checklist website beveiligen.
De belangrijkste headers
- Strict-Transport-Security (HSTS) — Wat het doet: browser gebruikt alleen HTTPS voor je domein; Risico bij instellen: laag, mits HTTPS overal werkt; begin met korte max-age
- X-Content-Type-Options: nosniff — Wat het doet: browser raadt geen bestandstype; Risico bij instellen: zeer laag
- Referrer-Policy — Wat het doet: beperkt welke herkomstinformatie wordt gedeeld; Risico bij instellen: laag
- Content-Security-Policy (CSP), incl. frame-ancestors — Wat het doet: bepaalt van welke bronnen scripts, stijlen, beelden en frames mogen komen; Risico bij instellen: hoog: kan functies blokkeren
- X-Frame-Options — Wat het doet: voorkomt dat je pagina in een frame op een andere website wordt geladen; Risico bij instellen: laag tot gemiddeld
- Permissions-Policy — Wat het doet: beperkt toegang tot functies als camera, microfoon, locatie; Risico bij instellen: laag
HSTS
Met HSTS onthoudt een browser dat je website alleen via HTTPS mag worden bezocht. Zorg eerst dat HTTPS overal werkt, ook op subdomeinen als je includeSubDomains gebruikt. Begin met een korte geldigheid en verhoog die als alles goed gaat. Zie ook Mixed content oplossen.
Content-Security-Policy
Een CSP is een lijst van toegestane bronnen. Alles wat er niet op staat, blokkeert de browser. Dat beschermt tegen ingevoegde scripts, maar elke tool die je gebruikt (analytics, chat, betaalprovider, video) moet erop staan.
Aanpak:
- Begin met de rapportagemodus (Content-Security-Policy-Report-Only): de browser meldt overtredingen, maar blokkeert niets.
- Verzamel welke bronnen je website gebruikt.
- Stel de policy op en test grondig.
- Zet hem daarna actief.
- Werk hem bij als je nieuwe tools toevoegt.
Waar stel je ze in?
- Webserverconfiguratie (Apache, Nginx) of bij je hostingpartij.
- CDN zoals Cloudflare. Zie Cloudflare instellen.
- WordPress-plugin voor securityheaders.
- Platforms als Webflow of Shopify: de mogelijkheden zijn beperkter; controleer wat het platform zelf instelt en wat je kunt aanpassen.
Testen
- Gebruik de websitetest van internet.nl of een andere headertest.
- Controleer in de ontwikkelaarstools van je browser (Netwerk → Headers) welke headers worden meegestuurd.
- Test alle belangrijke functies: formulieren, betalingen, ingesloten video's, chat.
Voorbeeld
Stel: een webshop stelt via de CDN eerst HSTS (met een korte max-age), X-Content-Type-Options, Referrer-Policy en een frame-ancestors-instelling in. Daarna wordt een CSP in rapportagemodus gezet. Na twee weken blijkt uit de meldingen dat ook de betaalprovider, de reviewwidget en de chatdienst bronnen laden. Die worden aan de policy toegevoegd, waarna de CSP actief wordt gezet.
Vergeet je subdomeinen niet bij het instellen van headers en HSTS; zie Subdomeinen beheren.
Veelgestelde vragen
Helpen securityheaders voor SEO?
Niet direct, maar HTTPS en een veilige website dragen bij aan vertrouwen.
Kan ik mijn website breken met headers?
Vooral een te strenge CSP kan functies blokkeren. Test eerst in rapportagemodus.
Wat is clickjacking?
Een aanval waarbij je website onzichtbaar in een frame op een andere website wordt geladen om klikken te misleiden.
Moet ik alle headers instellen?
Begin met de eenvoudige; voeg CSP toe als je de tijd hebt om goed te testen.
Hoe weet ik welke headers mijn website nu heeft?
Via een online test of de ontwikkelaarstools van je browser.
Hulp nodig?
Wil je je website technisch goed beveiligd hebben? Bekijk onze dienst security en monitoring.
Begin met HSTS (met een korte max-age), X-Content-Type-Options en Referrer-Policy; die geven zelden problemen. Een Content-Security-Policy is krachtig maar kan scripts blokkeren, dus test die eerst in de rapportagemodus.
Kennisbank
Verder lezen
