Content Security Policy (CSP) er en HTTP response header, der lader et site deklarere, hvilke kilder til scripts, stylesheets, billeder, fonts, frames og forbindelser browseren skal stole på. Direktiver som script-src, style-src, img-src og frame-ancestors giver finkornet kontrol, og browseren blokerer alt, der ikke er på allow-listen.
Hvorfor det er vigtigt
CSP er et af de stærkeste forsvar mod XSS: selv når en angriber formår at injicere et <script>-tag, forhindrer en stram policy det i at køre. Det begrænser også skade fra kompromitterede tredjepartsscripts, blokerer uønskede iframes (hvilket modvirker clickjacking) og giver dig et violation-reporting endpoint, så du kan opdage angreb og fejlkonfigurationer tidligt.
Sådan bruger du det
- Start med
Content-Security-Policy-Report-Onlyog etreport-toendpoint for at indsamle data uden at bryde sitet. - Undgå
'unsafe-inline'og'unsafe-eval'; brug nonces eller hashes til inline scripts, du ikke kan fjerne. - Lås
frame-ancestorstil din egen origin (eller'none') i stedet for at stole påX-Frame-Options. - Sæt
upgrade-insecure-requests, så eventuelle tilbageværende HTTP-subressourcer auto-opgraderes til HTTPS. - Kombinér CSP med Referrer-Policy og Permissions-Policy for lagdelt forsvar.
- Auditér tredjeparts-domæner regelmæssigt; se MDN CSP-referencen for alle direktiver.