Website security headers zijn een belangrijk, maar vaak vergeten onderdeel van websitebeveiliging. Door deze headers correct te implementeren, werp je direct een extra verdedigingslinie op tegen cyberaanvallen zoals data-injectie, clickjacking en man-in-the-middle aanvallen. Zeker wanneer je persoonsgegevens verwerkt of een webshop beheert, is deze extra beveiligingslaag echt onmisbaar.
Wat zijn HTTP security headers precies?
Wanneer een bezoeker jouw website opent, communiceert hun browser (zoals Chrome of Safari) met jouw webserver. De server stuurt de websitepagina terug, vergezeld van onzichtbare metadata: de HTTP Response Headers.

Zonder specifieke instructies probeert een browser zelf in te schatten hoe hij met bepaalde scripts of verbindingen moet omgaan. Door security headers toe te voegen, neem je de controle over. Je dwingt de browser hiermee om veilige gedragspatronen te volgen en blokkeert actief de routes die hackers vaak gebruiken om kwetsbaarheden uit te buiten.
Hierbij een introductievideo:
Stap 1: Test de huidige beveiliging van jouw website
Voordat we wijzigingen aanbrengen, is het belangrijk om je huidige status in kaart te brengen. Via de onlinetool SecurityHeaders.com kun je binnen enkele seconden de headers van jouw website testen.
Als er nog geen security headers zijn geconfigureerd, is de kans groot dat je een ‘F’ score krijgt. Dat ziet er zo uit:

Stap 2: De basisbeveiliging verbeteren via het .htaccess bestand (Apache)
Als jouw website draait op een Apache-webserver (wat voor veel websites het geval is), kun je de basisheaders zelf toevoegen via het .htaccess bestand.
Let op: Maak altijd eerst een back-up van je
.htaccessbestand voordat je wijzigingen aanbrengt. Een typfout in dit bestand kan ervoor zorgen dat je website tijdelijk onbereikbaar wordt.
Voeg de onderstaande regels toe aan je .htaccess bestand. Let op dat we ook de nieuwe Permissions-Policy hebben toegevoegd. Hiermee voorkom je dat kwaadaardige scripts zomaar toegang vragen tot de camera, microfoon of locatie van je bezoekers.
ServerSignature Off
<IfModule mod_headers.c>
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-XSS-Protection "1; mode=block"
Header always set X-Content-Type-Options "nosniff"
Header set Referrer-Policy "no-referrer-when-downgrade"
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</IfModule>
Het resultaat na een succesvolle implementatie op een Apache-server:

Stap 3: Wat als je Nginx gebruikt?
Nginx is een andere veelgebruikte, snelle webserver. Omdat Nginx geen gebruik maakt van .htaccess bestanden, moet je de security headers direct in de serverconfiguratie plaatsen. Voeg deze regels toe aan je nginx.conf of in het specifieke server block van je website:
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
Stap 4: Makkelijke alternatieven (WordPress Plugins & Cloudflare)
Durf je het niet aan om in de code van je server te werken, of heb je daar geen toegang toe? Geen zorgen, er zijn veiligere en makkelijkere alternatieven.
- Via WordPress Plugins: Gebruik je WordPress? Plugins zoals Really Simple Security Pro of Solid Security hebben ingebouwde opties om deze headers met één druk op de knop in te schakelen. Dit is vaak de veiligste route voor niet-technische gebruikers. Je ziet dan ook gelijk waar de kwetsbaarheden liggen en hoe je veilig blijft. En dat voor nog geen 50 euro per jaar per domein.

- Via Cloudflare (CDN): Als je website via Cloudflare loopt, kun je security headers instellen op netwerkniveau. Ga in je Cloudflare dashboard naar Rules > Transform Rules > HTTP Response Header Modification. Het voordeel hiervan is dat je server niet belast wordt en je de code niet hoeft aan te raken.
Stap 5: Content-Security-Policy (CSP)
Na het instellen van de basisheaders zal je score op SecurityHeaders.com waarschijnlijk een ‘B’ of ‘A’ zijn. Om de perfecte ‘A+’ te halen en je maximaal te beschermen tegen Cross-Site Scripting (XSS), heb je een Content-Security-Policy (CSP) nodig.
Hier zie je in een video wat het is:
Een CSP is een ‘witte lijst’ die de browser vertelt exact vanaf welke domeinen scripts en afbeeldingen geladen mogen worden.
Maar pas op: stel je dit te streng in, dan breken legitieme functies op je site (zoals Google Analytics of YouTube-video’s). De fouten verschijnen dan in de browserconsole:
Test een CSP daarom altijd eerst met de Report-Only modus. Voeg dit toe aan je configuratie:
Header always set Content-Security-Policy-Report-Only "default-src 'self'; img-src 'self' data: https:; script-src 'self' 'unsafe-inline' https://www.google-analytics.com;"
Controleer vervolgens in de ‘Console’ van je browser (F12) of er belangrijke scripts van je site geblokkeerd zouden worden.

Pas de policy aan totdat er geen fouten meer zijn, en verander dan Report-Only in de definitieve Content-Security-Policy header.
Hulp nodig met het beveiligen van jouw website?
Met de juiste headers werp je een muur op tegen hackers en zorg je ervoor dat de gegevens van jou en je bezoekers veilig blijven. Het eindresultaat na een succesvolle implementatie is echt goed.
Kom je er zelf niet uit, werk je met complexe systemen, of ben je bang dat je website per ongeluk onbereikbaar wordt als je in de serverbestanden werkt? Neem dan geen risico. Neem gerust contact met ons op. Wij kijken met je mee en zorgen ervoor dat de beveiliging van jouw website professioneel wordt ingeregeld.