Content-Security-Policy (CSP)
De zwaarst wegende header tegen XSS: bepaalt welke scripts, stijlen en frames een pagina mag laden.
Wat doet hij?
CSP is een whitelist die de browser vertelt welke bronnen (scripts, stylesheets, afbeeldingen, frames, fonts) een pagina mag laden en van waar. Alles wat niet expliciet is toegestaan, wordt geblokkeerd — ook als een aanvaller erin slaagt kwaadaardige HTML of JavaScript in de pagina te injecteren.
Waarom telt hij mee?
Zonder CSP is een geslaagde XSS-injectie (bijvoorbeeld via een kwetsbaar formulierveld of een gecompromitteerde derde-partij-library) meteen code-executie in de browser van elke bezoeker. Met een strikte CSP wordt diezelfde injectie onschadelijk: het script mag simpelweg niet draaien.
Aanbevolen waarde
Content-Security-Policy: default-src 'self'; script-src 'self' 'nonce-<random>'; object-src 'none'; frame-ancestors 'self'Veelgemaakte fout
'unsafe-inline' of 'unsafe-eval' toevoegen om snel een foutmelding weg te werken. Dat maakt de CSP grotendeels nutteloos tegen XSS — gebruik in plaats daarvan nonces of hashes voor inline scripts.
Configuratievoorbeelden
Kant-en-klare snippet om Content-Security-Policy in te stellen, per platform.
Startpolicy — pas de bronnen aan op wat jouw site echt laadt (scripts, fonts, afbeeldingen) voordat je dit live zet.
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; font-src 'self'; connect-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'self'" always;
Check Content-Security-Policy op jouw domein
Voer een domein in en zie direct of deze header aanwezig is en goed is ingesteld.