Wat zijn security headers en waarom mist bijna elke website er een paar?
Wat zijn security headers? Het zijn HTTP-instructies waarmee een website browsers vertelt hoe ze veiliger met content, scripts, frames en verwijzingen moeten omgaan. Ze staan niet in de pagina zelf, maar reizen mee in de serverreactie en bepalen mede hoe streng de browser zich gedraagt. Goede headers kosten weinig, maar verkleinen het aanvalsoppervlak voor problemen als clickjacking, content-injectie en het lekken van data.
Wat een security header precies is en hoe het werkt
Een security header is een regel in het HTTP-antwoord dat je server terugstuurt zodra een browser een pagina opvraagt. Naast de inhoud van de pagina krijgt de browser een set instructies mee, en een deel daarvan gaat specifiek over veiligheid. De browser leest die instructies en past zijn gedrag aan: hij weigert bijvoorbeeld scripts van onbekende bronnen, blokkeert dat je site in een frame van iemand anders wordt geladen, of dwingt af dat verbindingen altijd via HTTPS lopen.
Het verschil met andere beveiliging is dat security headers in de browser werken, niet op de server. Een firewall of WAF houdt aanvallen tegen voordat ze je server raken. Security headers doen iets anders: ze instrueren de browser van de bezoeker om bepaald risicovol gedrag te weigeren. Daardoor beschermen ze vooral tegen aanvallen die zich in de browser van de gebruiker afspelen, zoals cross-site scripting en clickjacking.
Je ziet de headers normaal niet als bezoeker. Ze zijn alleen zichtbaar in de ontwikkelaarstools van je browser (tabblad Netwerk) of via een scan. Dat is precies waarom ze zo vaak ontbreken: een site oogt prima zonder, en het gemis valt pas op als iemand er gericht naar kijkt of als er een incident is.
De belangrijkste headers en wat ze doen
HSTS (Strict-Transport-Security) dwingt af dat de browser je site altijd via HTTPS benadert, ook als iemand per ongeluk http typt of op een oude link klikt. Dat voorkomt dat verkeer in een onversleuteld moment kan worden onderschept. HSTS werkt pas goed als HTTPS overal stabiel draait, want eenmaal ingesteld onthoudt de browser de regel een lange tijd.
Content-Security-Policy (CSP) is de krachtigste maar ook lastigste header. Hiermee bepaal je welke bronnen scripts, styles, afbeeldingen en frames mogen leveren. Een goede CSP maakt cross-site scripting veel moeilijker, omdat ingeslopen scripts simpelweg niet meer worden uitgevoerd. De keerzijde: een te strenge of slecht geteste CSP breekt makkelijk legitieme functionaliteit zoals analytics, embeds of betaalwidgets.
X-Frame-Options (of de frame-ancestors-regel binnen CSP) voorkomt clickjacking door te blokkeren dat jouw site in een frame van een andere site wordt geladen. Referrer-Policy bepaalt hoeveel informatie over de herkomst-URL wordt meegestuurd als een bezoeker doorklikt, wat datalekkage via verwijzingen beperkt. Permissions-Policy regelt welke browserfuncties (camera, microfoon, locatie, geolocatie) een pagina mag aanspreken. Samen vormen deze vijf de praktische basis die je op vrijwel elke website wilt hebben.
Waarom bijna elke website er een paar mist
In de praktijk scoort het overgrote deel van de websites onvolledig op security headers. Dat heeft zelden met onwil te maken en bijna altijd met onzichtbaarheid. Een site bouwt en deployt prima zonder deze headers, er komt geen foutmelding, en niemand merkt het verschil in dagelijks gebruik. Pas bij een gerichte controle of een incident komt het tekort naar boven.
Een tweede oorzaak is verdeelde verantwoordelijkheid. Headers kunnen worden ingesteld in de applicatie, op de webserver (zoals Nginx of Apache), bij de hosting of in een CDN dat ervoor zit. Bij een doorsnee mkb-site is vaak niet één partij eindverantwoordelijk, waardoor iedereen aanneemt dat een ander het regelt. Het resultaat: niemand doet het.
De derde reden is voorzichtigheid rond CSP. Omdat een verkeerde CSP zichtbaar dingen kan breken, durven bouwers hem niet aan te zetten en blijft hij achterwege. Dat is begrijpelijk, maar leidt ertoe dat juist de waardevolste header het vaakst ontbreekt. De makkelijkere headers zoals X-Frame-Options en Referrer-Policy worden dan ook overgeslagen, terwijl die met veel minder risico aan te zetten zijn.
Hoe je security headers veilig instelt zonder je site te breken
Begin nooit met de strengste instelling in productie. Werk in lagen en test na elke wijziging. Start met de headers die weinig kunnen breken: X-Frame-Options, Referrer-Policy en Permissions-Policy. Die kun je in de meeste gevallen direct aanzetten zonder dat bezoekers er iets van merken, en ze leveren meteen winst op tegen clickjacking en onnodige datalekkage.
HSTS zet je pas aan als HTTPS overal werkt, inclusief subdomeinen waar je dat wilt afdwingen. Schakel niet meteen de allerlangste geldigheidsduur of de preload-optie in, want een fout daarin is lastig terug te draaien omdat browsers de regel onthouden. Bouw de geldigheidsduur rustig op zodra je zeker weet dat alle HTTPS-verbindingen kloppen.
CSP verdient de meeste zorg. Zet hem eerst in report-only modus: de browser rapporteert dan welke bronnen tegen de regels in zouden gaan, zonder daadwerkelijk iets te blokkeren. Zo zie je precies welke scripts, styles, fonts en externe diensten je site echt gebruikt. Pas als het rapport schoon is en je begrijpt waar elke bron vandaan komt, schakel je over naar afdwingen. Houd er rekening mee dat CDN, hosting en applicatie elkaars headers kunnen overschrijven; controleer dus wat de bezoeker uiteindelijk binnenkrijgt, niet alleen wat je in één laag hebt ingesteld.
Voor wie dit relevant is: mkb-ondernemers en bureaus
Voor mkb-ondernemers zijn security headers een professionele basismaatregel, vergelijkbaar met een geldig SSL-certificaat. Je hoeft de techniek niet zelf te beheersen, maar het is verstandig om te weten dat ze bestaan en om ernaar te vragen bij wie je website beheert. Een eenvoudige vraag als 'staan onze basis security headers goed?' maakt vaak duidelijk of er over is nagedacht. Het kost je leverancier doorgaans weinig tijd om de veilige basisheaders aan te zetten.
Voor webbureaus en technische teams zijn headers een kans om kwaliteit zichtbaar te maken. Veel klanten zien niet wat er achter de schermen aan onderhoud gebeurt. Door headers standaard in je oplevering mee te nemen en in een rapport te tonen, vertaal je onzichtbaar werk naar een concreet kwaliteitspunt. Het onderscheidt een professioneel gebouwde site van een snel in elkaar gezette.
Voor beide groepen geldt dat security headers geen complete beveiliging zijn. Ze vervangen geen updates, geen sterke wachtwoorden, geen back-ups en geen goede toegangsrechten. Ze zijn een laag in een groter geheel: goedkoop, effectief en daarom een logisch beginpunt, maar niet het eindstation.
Hoe CheckBorg ontbrekende headers zichtbaar maakt
Een gratis CheckBorg-scan controleert welke security headers je website meestuurt en welke ontbreken of zwak zijn ingesteld. Je krijgt per header te zien wat er staat, wat het effect is en welke punten prioriteit verdienen. Zo hoef je niet zelf in de ontwikkelaarstools te duiken om te ontdekken waar het misgaat.
CheckBorg is bewust feitelijk en doet niet alsof headers een volledige beveiligingsoplossing zijn. De scan signaleert: hij zegt welke header mist, niet dat je site daarmee per definitie onveilig of veilig is. Die nuchtere lijn past bij hoe een onafhankelijke meter hoort te werken, met klanten, Google en ChatGPT als referentiekader in plaats van een verkoopverhaal.
Voor bureaus is de scan handig om vóór oplevering een nulmeting te doen en na livegang te controleren of de headers ook echt bij de bezoeker aankomen, zodat een CDN- of hostinglaag ze niet alsnog overschrijft. Voor ondernemers is het een snelle manier om te zien of je leverancier de basis op orde heeft. Draai de scan, neem de bevindingen mee naar wie je site beheert en bepaal samen welke headers je als eerste aanzet.
Praktische checklist
Draai eerst een gratis CheckBorg-scan om te zien welke security headers je site nu meestuurt en welke ontbreken.
Begin met de veilige basisheaders: X-Frame-Options, Referrer-Policy en Permissions-Policy. Die kun je meestal direct aanzetten.
Controleer of HTTPS overal stabiel werkt, inclusief subdomeinen, voordat je HSTS toevoegt.
Voeg HSTS toe met een korte geldigheidsduur en bouw die pas op als alle HTTPS-verbindingen kloppen. Gebruik preload alleen bewust.
Zet Content-Security-Policy eerst in report-only modus en verzamel de rapporten om te zien welke bronnen je site echt nodig heeft.
Schakel CSP pas naar afdwingen als het rapport schoon is en je elke toegestane bron begrijpt.
Test na elke wijziging formulieren, betaalflows, embeds, analytics en chatwidgets, en controleer wat de bezoeker uiteindelijk binnenkrijgt (niet alleen je serverconfiguratie).
Veelgemaakte fouten
- - Headers kopiëren uit een online voorbeeld zonder te kijken naar de eigen stack en gebruikte diensten.
- - CSP meteen live afdwingen zonder report-only of testomgeving, waardoor scripts, embeds of betaalwidgets stilvallen.
- - Vergeten dat CDN, hosting en applicatie elkaars headers kunnen overschrijven, zodat je instelling de bezoeker nooit bereikt.
- - HSTS met een lange geldigheidsduur of preload aanzetten terwijl HTTPS nog niet overal stabiel is, wat lastig terug te draaien is.
- - De makkelijke basisheaders overslaan omdat alleen CSP aandacht krijgt, terwijl X-Frame-Options en Referrer-Policy juist snel winst geven.
- - Denken dat security headers een complete beveiliging zijn en daardoor updates, back-ups en toegangsrechten verwaarlozen.
Veelgestelde vragen
Zijn security headers verplicht?
Niet altijd wettelijk verplicht, maar ze gelden als een professionele basismaatregel voor moderne websites. Voor sites met formulieren, logins of betalingen zijn ze sterk aan te raden. Een gratis CheckBorg-scan laat zien hoe je site er nu voor staat.
Kan ik security headers via mijn hosting instellen?
Vaak wel. Afhankelijk van je stack stel je headers in via de hosting, de webserver, een CDN of de applicatieconfiguratie. Let op dat deze lagen elkaar kunnen overschrijven, dus controleer altijd wat de bezoeker uiteindelijk ontvangt.
Welke header zet ik als eerste aan?
Begin met de veilige basis: X-Frame-Options, Referrer-Policy en Permissions-Policy. Die leveren snel winst op tegen clickjacking en datalekkage met weinig risico dat ze iets breken. CSP en HSTS bewaar je voor daarna, omdat die meer voorbereiding vragen.
Waarom is Content-Security-Policy zo lastig?
CSP bepaalt welke bronnen scripts, styles en frames mogen leveren. Een te strenge regel blokkeert ook legitieme zaken als analytics, fonts of betaalwidgets. Daarom start je in report-only modus, zodat je eerst ziet wat je site echt gebruikt voordat je gaat afdwingen.
Maken security headers mijn website volledig veilig?
Nee. Ze verkleinen het aanvalsoppervlak in de browser, maar vervangen geen updates, sterke wachtwoorden, back-ups of goede toegangsrechten. Zie ze als een goedkope en effectieve laag binnen een groter beveiligingsgeheel, niet als complete oplossing.
Hoe controleer ik of mijn headers goed staan?
Je kunt ze bekijken in de ontwikkelaarstools van je browser onder het tabblad Netwerk, maar sneller is een scan. CheckBorg toont per header wat er staat, wat ontbreekt en welke punten prioriteit verdienen, zonder te doen alsof headers de hele beveiliging dekken.
Verder lezen
Gerelateerde gidsen
Verdiep je verder in websitekwaliteit, vindbaarheid en conversie voordat je de volgende scan draait.
7 min lezen
Structured data voor AI: welke schema-markup helpt ChatGPT je begrijpen
Schema.org-markup vertelt zoekmachines en AI wat je content betekent. Welke types tellen voor AI-vindbaarheid, en hoe pak je het aan zonder developer?
Lees verder6 min lezen
In Google AI Overviews komen: wat het is en hoe je je kans vergroot
Google toont steeds vaker een AI-samenvatting boven de zoekresultaten. Wat zijn AI Overviews, hoe kiest Google de bronnen, en hoe vergroot je de kans dat jij wordt aangehaald?
Lees verder6 min lezen
E-E-A-T uitgelegd: waarom Google en AI vertrouwen meewegen
E-E-A-T (ervaring, expertise, autoriteit, betrouwbaarheid) bepaalt mede of Google en AI je content vertrouwen. Wat is het, en hoe maak je het zichtbaar op je site?
Lees verderWil je direct zien waar jouw website staat?
Start een veilige CheckBorg scan en vertaal technische signalen naar duidelijke prioriteiten.