Security headers zijn instructies die je webserver meestuurt naar de browser van een bezoeker, waarmee je aanvallen zoals cross-site scripting en clickjacking kunt voorkomen. Door headers als Content-Security-Policy, Strict-Transport-Security en X-Frame-Options correct in te stellen, verklein je de kans dat je site misbruikt wordt. In dit artikel lees je welke headers belangrijk zijn en hoe je ze stap voor stap instelt.
Wat zijn security headers
Security headers zijn HTTP-responseheaders die je server bij elke pagina meestuurt. Ze vertellen de browser hoe hij zich moet gedragen op het gebied van beveiliging: welke bronnen mogen laden, of de site in een iframe getoond mag worden en of verbindingen altijd via https moeten verlopen. Zonder deze headers laat je het gedrag van de browser aan standaardinstellingen over, wat kwetsbaarheden kan openlaten.
Headers zijn een aanvulling op andere beveiligingsmaatregelen, zoals een geldig SSL-certificaat, actuele software en sterke wachtwoorden. Ze vormen geen vervangende oplossing, maar een extra verdedigingslaag die relatief eenvoudig in te stellen is.
De belangrijkste headers uitgelegd
Er zijn verschillende headers die samen een stevige basis vormen:
- Strict-Transport-Security (HSTS) dwingt browsers om altijd via https te verbinden, zodat een onbeveiligde verbinding niet meer mogelijk is.
- Content-Security-Policy (CSP) bepaalt van welke bronnen scripts, afbeeldingen en stylesheets mogen laden, wat cross-site scripting bemoeilijkt.
- X-Frame-Options voorkomt dat je site in een iframe van een andere website getoond wordt, wat clickjacking tegengaat.
- X-Content-Type-Options met waarde nosniff voorkomt dat de browser bestandstypen verkeerd interpreteert.
- Referrer-Policy regelt hoeveel informatie wordt meegestuurd naar andere sites wanneer een bezoeker doorklikt.
- Permissions-Policy beperkt welke browserfuncties, zoals camera of locatie, een pagina mag gebruiken.
Security headers instellen
Je kunt headers op verschillende manieren instellen, afhankelijk van je serverconfiguratie en controlepaneel. Bij een Plesk-omgeving, zoals gebruikt bij Tandata webhosting, kun je headers toevoegen via de Apache- en nginx-instellingen van je domein of via de map met aanvullende directieven.
Open de instellingen van je domein
Ga in Plesk naar je domein en kies bij Apache & nginx-instellingen voor ‘Aanvullende directieven’.
Voeg de headers toe
Plaats regels zoals Header set Strict-Transport-Security "max-age=31536000; includeSubDomains" en Header set X-Content-Type-Options "nosniff".
Stel Content-Security-Policy in
Begin met een ruime policy, bijvoorbeeld default-src 'self', en breid deze uit met de domeinen die je daadwerkelijk gebruikt voor scripts en fonts.
Sla op en test
Bewaar de wijzigingen en controleer direct of je site nog normaal laadt, met name formulieren en externe widgets.
Controleer je e-mail en overige diensten
Headers gelden alleen voor webverkeer, maar zorg dat je ook je zakelijke e-mail goed beveiligd hebt voor een compleet beeld van je beveiliging.
Werk je zonder Plesk of met een .htaccess-bestand, dan kun je dezelfde regels daar toevoegen onder de voorwaarde dat de mod_headers-module actief is.
Headers controleren en testen
Nadat je de headers hebt ingesteld, controleer je of ze daadwerkelijk worden verzonden. Dat kan via de ontwikkelaarstools van je browser onder het tabblad Netwerk, waar je de responseheaders van je pagina kunt bekijken. Er bestaan ook onafhankelijke online scanners die een overzicht geven van ontbrekende of onjuist ingestelde headers.
Test na iedere wijziging grondig, vooral bij Content-Security-Policy. Een te strikte policy kan ervoor zorgen dat afbeeldingen, scripts of ingesloten video’s niet meer laden. Pas de policy stapsgewijs aan en controleer telkens of alles blijft werken voordat je verdergaat.
Loop je vast bij het instellen van headers, bekijk dan de artikelen in onze kennisbank of neem contact op met support. Overweeg je over te stappen naar een provider die dit soort instellingen eenvoudiger beheerbaar maakt, kijk dan bij overstappen naar Tandata.
Veelgestelde vragen
Kunnen security headers mijn website laten stoppen met werken?
Ja, vooral een te strikte Content-Security-Policy kan scripts of afbeeldingen blokkeren. Test daarom altijd grondig na elke wijziging.
Zijn security headers verplicht voor elke website?
Ze zijn niet wettelijk verplicht, maar wel sterk aan te raden omdat ze een laagdrempelige manier zijn om bekende aanvalstechnieken tegen te gaan.
Werken security headers ook zonder SSL-certificaat?
De meeste headers werken onafhankelijk van SSL, maar Strict-Transport-Security heeft alleen effect op een verbinding die al via https verloopt. Zorg daarom eerst voor een geldig SSL-certificaat.
Hebben security headers invloed op e-mail?
Nee, headers gelden voor webverkeer via de browser. Voor de beveiliging van je e-mail kijk je naar aparte instellingen zoals SPF, DKIM en DMARC bij je zakelijke e-mail.
Moet ik headers ook instellen voor subdomeinen?
Ja, als je bijvoorbeeld meerdere subdomeinen of domeinnamen beheert, is het verstandig de headers per domein te controleren, vooral bij includeSubDomains in je HSTS-instelling.
Conclusie
Security headers zijn een eenvoudige maar effectieve manier om je website beter te beveiligen tegen veelvoorkomende aanvallen. Begin met de basisheaders zoals HSTS en X-Content-Type-Options, bouw stapsgewijs een Content-Security-Policy op en test iedere wijziging goed. Zo versterk je de beveiliging zonder de werking van je site in gevaar te brengen.