Gidsen

Ontbrekende beveiligingsheaders oplossen (CSP, HSTS)

Het ontbreken van beveiligingsheaders stelt webapplicaties bloot aan cross-site scripting (XSS), clickjacking, protocol-downgrades en het lekken van inlogsessies.

Kort antwoord

Activeer Strict-Transport-Security met een geldigheidsduur van één jaar en preload, stel een strikte Content-Security-Policy in, gebruik X-Content-Type-Options: nosniff en frame-ancestors 'none'.

Ontbrekende responsheaders diagnosticeren

Inspecteer voorafgaand aan configuratiewijzigingen de huidige headers via curl -IL of een geautomatiseerde scanner. Bepaal waar TLS wordt beëindigd en headers worden toegevoegd: op de origin-server (Nginx, Apache), reverse proxy of CDN-edge. Verifieer dat tussenliggende gateways de beveiligingsheaders niet onbedoeld verwijderen.

Strict-Transport-Security (HSTS) veilig instellen

HSTS dwingt browsers af om uitsluitend via beveiligde HTTPS-verbindingen te communiceren, waardoor man-in-the-middle aanvallen worden geneutraliseerd. Start in een testfase met max-age=86400 (één dag). Zodra alle subdomeinen en bronnen stabiel via HTTPS bereikbaar zijn, schakelt u over naar productie: max-age=31536000; includeSubDomains; preload. Gebruik nooit max-age=0 in productie.

Een robuuste Content Security Policy (CSP) ontwerpen

CSP bepaalt exact welke bronnen scripts mogen uitvoeren in de browser. Begin met de Content-Security-Policy-Report-Only header en de report-to instructie om overtredingen te loggen zonder paginafuncties te blokkeren. Definieer default-src 'self', script-src 'self' met nonces of SHA-256 hashes ter vervanging van 'unsafe-inline', schakel plugins uit met object-src 'none' en vergrendel frame-ancestors 'none'.

Clickjacking, MIME-sniffing en referrer-lekken voorkomen

Voorkom dat kwaadwillenden uw website insluiten in verborgen iframes met frame-ancestors 'none' in de CSP en X-Frame-Options: DENY als terugvaloptie voor oudere browsers. Blokkeer onveilige MIME-type aannames met X-Content-Type-Options: nosniff en beperk het doorgeven van URL-gegevens bij externe links met Referrer-Policy: strict-origin-when-cross-origin.

Serverimplementatie en verificatie

In Nginx definieert u de regels binnen het HTTPS-serverblok met behulp van add_header en de parameter always (bijvoorbeeld: add_header X-Content-Type-Options "nosniff" always;), zodat de headers ook bij 4xx- en 5xx-foutmeldingen worden meegezonden. In Apache gebruikt u mod_headers met Header always set. Valideer de syntax via nginx -t en herlaad de service.

Beveiligingsheaders: HTTPS, CSP, framebeveiliging, MIME, referrer en browserisolatie.

Start gratis audit →

Vragen

Veelgestelde vragen

Kan HSTS-preload direct worden ingeschakeld op het hoofddomein?

Nee. Begin met Strict-Transport-Security: max-age=86400 (één dag) en controleer of alle subdomeinen en API's bereikbaar zijn via HTTPS voordat u de domein registreert bij hstspreload.org met max-age=31536000.

Hoe implementeer ik Content Security Policy zonder scripts van derden te breken?

Gebruik eerst Content-Security-Policy-Report-Only om overtredingen te loggen, breng externe bronnen in kaart en gebruik nonces of cryptografische hashes voordat de blokkering wordt geactiveerd.