Hacker News

CSP voor pentesters: de grondbeginselen begrijpen

Master Content Security Policy voor penetratietesten. Leer hoe u CSP-misconfiguraties kunt identificeren en de beveiligingsbeoordelingen van webapplicaties kunt versterken.

6 min gelezen

Mewayz Team

Editorial Team

Hacker News

Waarom elke pentester het inhoudsbeveiligingsbeleid moet beheersen

Content Security Policy (CSP) is een van de meest kritische verdedigingsmechanismen aan de browserzijde geworden tegen cross-site scripting (XSS), data-injectie en clickjacking-aanvallen. Maar bij penetratietests blijven CSP-headers een van de vaakst verkeerd geconfigureerde – en verkeerd begrepen – beveiligingscontroles. Uit een onderzoek uit 2024 waarin meer dan 1 miljoen websites werden geanalyseerd, bleek dat slechts 12,8% überhaupt CSP-headers gebruikte, en dat daarvan bijna 94% ten minste één beleidszwakte bevatte die kon worden uitgebuit. Voor pentesters is het begrijpen van CSP niet optioneel; het is het verschil tussen een beoordeling op oppervlakkig niveau en een rapport dat daadwerkelijk de beveiligingspositie van een klant versterkt.

Of u nu webapplicatie-evaluaties uitvoert, op jacht gaat naar bugs of beveiliging inbouwt in een bedrijfsplatform dat gevoelige klantgegevens verwerkt, CSP-kennis is van fundamenteel belang. In deze gids wordt uiteengezet wat CSP is, hoe het onder de motorkap werkt, waar het faalt, en hoe pentesters zwak beleid systematisch kunnen evalueren en omzeilen.

Wat het inhoudsbeveiligingsbeleid feitelijk doet

In de kern is CSP een declaratief beveiligingsmechanisme dat wordt geleverd via een HTTP-antwoordheader (of, minder vaak, een -tag). Het instrueert de browser welke inhoudsbronnen (scripts, stijlen, afbeeldingen, lettertypen, frames en meer) op een bepaalde pagina mogen worden geladen en uitgevoerd. Wanneer een bron het beleid schendt, blokkeert de browser dit en rapporteert de overtreding optioneel aan een opgegeven eindpunt.

De oorspronkelijke motivatie achter CSP was om XSS-aanvallen te beperken. Traditionele XSS-verdedigingen, zoals het opschonen van invoer en het coderen van uitvoer, zijn effectief maar broos: een enkele gemiste context of coderingsfout kan de kwetsbaarheid opnieuw introduceren. CSP voegt een diepgaande verdedigingslaag toe: zelfs als een aanvaller een kwaadaardige scripttag in de DOM injecteert, voorkomt een correct geconfigureerd beleid dat de browser deze code uitvoert.

CSP werkt volgens een whitelist-model. In plaats van te proberen bekende slechte inhoud te blokkeren, wordt gedefinieerd wat expliciet is toegestaan. Al het andere wordt standaard geweigerd. Deze omkering van het beveiligingsmodel is in theorie krachtig, maar in de praktijk is het handhaven van een strikt beleid voor complexe webapplicaties – vooral platforms die tientallen geïntegreerde modules beheren zoals CRM, facturatie-, analyse- en boekingssystemen – notoir moeilijk.

Anatomie van een CSP-header: richtlijnen en bronnen

Een CSP-header bestaat uit richtlijnen, die elk een specifiek resourcetype besturen. Het begrijpen van deze richtlijnen is essentieel voor elke pentester die het beleid van een doelwit evalueert. De belangrijkste richtlijnen zijn onder meer default-src (de fallback voor elke richtlijn die niet expliciet is ingesteld), script-src (JavaScript-uitvoering), style-src (CSS), img-src (afbeeldingen), connect-src (XHR, Fetch, WebSocket-verbindingen), frame-src (ingebedde iframes) en object-src (plug-ins zoals Flash of Java-applets).

Elke richtlijn accepteert een of meer bronexpressies die de toegestane oorsprong definiëren. Deze variëren van specifieke hostnamen (https://cdn.example.com) tot bredere trefwoorden:

'self' — staat bronnen toe van dezelfde oorsprong als het document

💡 WIST JE DAT?

Mewayz vervangt 8+ zakelijke tools in één platform

CRM · Facturatie · HR · Projecten · Boekingen · eCommerce · POS · Analytics. Voor altijd gratis abonnement beschikbaar.

Begin gratis →

'geen' — blokkeert alle bronnen van dat type

'unsafe-inline' - staat inline scripts of stijlen toe (neutraliseert effectief XSS-beveiliging)

'unsafe-eval' — staat eval(), setTimeout(string) en soortgelijke dynamische code-uitvoering toe

'nonce-{random}' — staat specifieke inline-scripts toe die zijn getagd met een overeenkomende cryptografische nonce

'strict-dynamic': vertrouwt scripts die zijn geladen door reeds vertrouwde scripts en negeert op host gebaseerde toelatingslijsten

data: — staat data-URI's toe als inhoudsbronnen

Een echte CSP-header zou er als volgt uit kunnen zien: Content-Security-Policy: default-src 'self'; script-src 'zelf' https://cdn.jsdelivr.net 'nonce-abc123'; style-src 'zelf' 'onveilig-inline'; img-src *; object-src 'geen'. Als pentester is het jouw taak om dit beleid te lezen en onmiddellijk te identificeren waar het sterk is, waar het zwak is en waar het kan worden uitgebuit.

Veel voorkomende CSP-misconfiguraties Pentesters Shoul

Frequently Asked Questions

What is Content Security Policy (CSP) and why should pentesters care?

Content Security Policy is a browser-side security mechanism that controls which resources a webpage can load, helping prevent XSS, data injection, and clickjacking attacks. Pentesters must understand CSP because it is one of the most frequently misconfigured security controls — studies show nearly 94% of deployed policies contain exploitable weaknesses. Mastering CSP fundamentals allows pentesters to identify critical vulnerabilities that automated scanners often miss entirely.

What are the most common CSP misconfigurations pentesters find?

The most common CSP misconfigurations include using unsafe-inline and unsafe-eval directives, overly permissive wildcard sources, missing frame-ancestors directives that enable clickjacking, and whitelisting entire CDN domains that host attacker-controllable content. Pentesters should also look for missing directives like base-uri and form-action, which can be leveraged for phishing and data exfiltration even when script controls appear strict.

How can businesses protect their web applications with proper CSP headers?

Businesses should start with a strict CSP using nonce-based or hash-based script allowlisting instead of domain whitelists. Deploy in report-only mode first to identify breakages before enforcement. Platforms like Mewayz, a 207-module business OS starting at $19/mo, help teams manage their web presence securely while following modern security best practices across all digital touchpoints.

What tools do pentesters use to evaluate CSP effectiveness?

Pentesters commonly use Google's CSP Evaluator, browser developer tools, and Burp Suite extensions to analyze CSP headers for weaknesses. Manual testing remains essential — automated tools miss context-dependent bypasses like JSONP endpoints and Angular template injection on whitelisted domains. A thorough assessment combines automated scanning with manual review of each directive against known bypass techniques and the application's specific technology stack.

Probeer Mewayz Gratis

Alles-in-één platform voor CRM, facturatie, projecten, HR & meer. Geen creditcard nodig.

Begin vandaag nog slimmer met het beheren van je bedrijf.

Sluit je aan bij 30,000+ bedrijven. Voor altijd gratis abonnement · Geen creditcard nodig.

Klaar om dit in de praktijk te brengen?

Sluit je aan bij 30,000+ bedrijven die Mewayz gebruiken. Voor altijd gratis abonnement — geen creditcard nodig.

Start Gratis Proefperiode →

Klaar om actie te ondernemen?

Start vandaag je gratis Mewayz proefperiode

Alles-in-één bedrijfsplatform. Geen creditcard vereist.

Begin gratis →

14 dagen gratis proefperiode · Geen creditcard · Altijd opzegbaar