Security headers configureren: bescherm je website in 15 minuten

Deel dit artikel

Security headers configureren: bescherm je website in 15 minuten

Je website heeft een SSL-certificaat, je software is up-to-date en je wachtwoorden zijn sterk. Maar heb je ook je security headers geconfigureerd? Bij meer dan 60% van de websites die wij scannen ontbreken essentiële security headers. Het goede nieuws: ze zijn in een kwartier ingesteld en beschermen tegen hele categorieën aanvallen — van clickjacking tot cross-site scripting.

Wat zijn security headers?

Security headers zijn instructies die je webserver meestuurt bij elk HTTP-antwoord. Ze vertellen de browser van je bezoeker hoe die zich moet gedragen: welke content mag worden geladen, of de pagina in een iframe mag worden getoond, of cookies alleen via HTTPS mogen worden verstuurd. Zonder deze headers bepaalt de browser zelf wat er mag — en dat is vaak te ruim.

Je kunt security headers controleren door in je terminal het volgende commando uit te voeren:

curl -sI https://www.jouwdomein.nl | grep -iE "strict-transport|content-security|x-frame|x-content-type|referrer-policy|permissions-policy"

Krijg je weinig of geen resultaten terug? Dan zijn je security headers niet geconfigureerd.

De 7 essentiële security headers

1. Strict-Transport-Security (HSTS)

HSTS dwingt browsers om alleen via HTTPS te communiceren met je website. Zonder HSTS kan een aanvaller een bezoeker omleiden naar een HTTP-versie van je site en verkeer onderscheppen (man-in-the-middle aanval).

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

2. Content-Security-Policy (CSP)

De krachtigste maar ook meest complexe header. CSP bepaalt welke bronnen (scripts, stylesheets, afbeeldingen, fonts) je pagina mag laden. Dit is je belangrijkste verdediging tegen Cross-Site Scripting (XSS) aanvallen.

Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted-cdn.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' https://fonts.gstatic.com

Begin met een basisbeleid en breid het uit op basis van wat je website nodig heeft. Tip: gebruik Content-Security-Policy-Report-Only om eerst te testen zonder content te blokkeren.

Bij Cobytes configureren we CSP standaard voor al onze managed hosting klanten. We monitoren CSP-violations via een report-uri zodat we snel kunnen reageren als er iets misgaat.

3. X-Content-Type-Options

Voorkomt dat browsers het MIME-type van een bestand raden (MIME-sniffing). Zonder deze header kan een aanvaller een kwaadaardig script uploaden als afbeelding, waarna de browser het toch als script uitvoert.

X-Content-Type-Options: nosniff

Eén regel, geen configuratie nodig. Geen reden om dit niet in te stellen.

4. X-Frame-Options

Bepaalt of je pagina in een iframe mag worden getoond. Zonder deze header kan een aanvaller je site in een onzichtbare iframe laden en bezoekers misleiden om op verkeerde knoppen te klikken (clickjacking).

X-Frame-Options: SAMEORIGIN

5. Referrer-Policy

Bepaalt hoeveel informatie je browser deelt over de vorige pagina wanneer een bezoeker op een link klikt. Zonder deze header lekt je website mogelijk gevoelige URL-parameters naar externe sites.

Referrer-Policy: strict-origin-when-cross-origin

Dit stuurt alleen het domein (niet het volledige pad) naar externe sites, en het volledige pad alleen naar je eigen domein.

6. Permissions-Policy

Bepaalt welke browser-API’s je website mag gebruiken: camera, microfoon, geolocatie, betaalmethoden. Schakel alles uit wat je niet gebruikt — zo voorkom je dat kwaadaardige scripts deze functies misbruiken.

Permissions-Policy: geolocation=(), microphone=(), camera=(), payment=(), usb=()

7. X-XSS-Protection

Deze header activeerde de ingebouwde XSS-filter van oudere browsers. Moderne browsers hebben dit filter verwijderd ten gunste van CSP. De aanbevolen instelling is nu:

X-XSS-Protection: 0

Ja, je leest het goed: 0 is nu de juiste waarde. De oude XSS-filter bleek zelf kwetsbaarheden te introduceren. Gebruik CSP in plaats daarvan.

Hoe stel je security headers in?

De configuratie verschilt per webserver. Hier zijn de meest voorkomende:

Nginx

Voeg de headers toe aan je server- of location-blok:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), microphone=(), camera=(), payment=()" always;
add_header X-XSS-Protection "0" always;

Apache (.htaccess)

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 "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "geolocation=(), microphone=(), camera=(), payment=()"
Header always set X-XSS-Protection "0"

Controleren of het werkt

Na het instellen kun je je headers controleren:

$ curl -sI https://www.cobytes.com | grep -iE "strict|content-security|x-frame|x-content|referrer|permissions"

strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
referrer-policy: same-origin
permissions-policy: geolocation=(), microphone=(), camera=(), payment=(), usb=(), magnetometer=(), gyroscope=(), accelerometer=()

Alle 7 headers aanwezig. Zo hoort het.

Veelgemaakte fouten

Meer over website security

Waarom dit ertoe doet

Security headers zijn de laagdrempeligste beveiligingsmaatregel die er bestaat. Ze kosten niets, zijn in minuten ingesteld, en beschermen tegen aanvallen die dagelijks plaatsvinden. Toch ontbreken ze bij het overgrote deel van de websites — simpelweg omdat niemand eraan denkt.

Bij Cobytes Managed Hosting configureren we alle security headers standaard voor onze klanten. Inclusief een op maat gemaakte Content-Security-Policy die past bij de specifieke services die je website gebruikt — van analytics tot chat widgets.

Wil je weten of jouw website de juiste security headers heeft? Neem contact met ons op voor een security check — we vertellen je precies wat er mist en helpen je bij het instellen.

Deel dit artikel

Bekijk deze relevante artikelen

Website security check: waarom elke organisatie regelmatig moet scannen

3 April 2026

Website security check: waarom elke organisatie regelmatig moet scannen

SPF instellen voor je domein: zo bescherm je je e-mail tegen spoofing

3 April 2026

SPF instellen voor je domein: zo bescherm je je e-mail tegen spoofing

Archipel kiest voor zekerheid en flexibiliteit met werkplekbeheer van Cobytes

10 October 2025

Archipel kiest voor zekerheid en flexibiliteit met werkplekbeheer van Cobytes