Naar inhoud springen
SilktideHelp

Content Security Policy

Silktide controleert of elke pagina een Content Security Policy opgeeft: een standaardbeveiligingsmaatregel die browsers vertelt welke bronnen voor scripts, afbeeldingen en andere inhoud de pagina mag gebruiken.

Een Content Security Policy (CSP) wordt geleverd als een of een metatag, bijvoorbeeld:

Content-Security-Policy: default-src 'self'; script-src 'self' scripts.example.com

Dit voorbeeld vertelt de browser om alleen inhoud van je eigen domein te laden, plus scripts van één vertrouwde host.

Waarom dit belangrijk is

Zonder een CSP voert een pagina uit wat deze krijgt aangeleverd. Als een aanvaller erin slaagt een script te injecteren — via een gecompromitteerde tag van een externe partij, een kwetsbaar reactieveld of een gekaapt advertentienetwerk — voert de browser dit uit met volledige toegang tot de pagina, inclusief alles wat je bezoekers invoeren. Deze aanvalsvorm, cross-site scripting, blijft een van de meest voorkomende manieren waarop websites worden gecompromitteerd.

Een CSP is het veiligheidsnet aan de browserzijde: geïnjecteerde inhoud van een niet-goedgekeurde bron wordt eenvoudigweg niet geladen. De CSP documenteert ook met welke externe partijen je pagina's communiceren. Dat helpt bij het aantonen van naleving van privacyregelgeving zoals de .

Zo los je dit op

  1. Maak een lijst van de legitieme bronnen waarvandaan je pagina's inhoud laden: je eigen domein, je , analytics, lettertypen en ingesloten media.
  2. Schrijf een beleid dat alleen deze bronnen toestaat. Begin strikt, bijvoorbeeld met default-src 'self', en voeg indien nodig specifieke bronnen per type inhoud toe (script-src, img-src, style-src).
  3. Configureer je webserver, hostingplatform of CDN om het beleid als de header Content-Security-Policy bij elke pagina mee te sturen. Als je headers niet kunt wijzigen, werkt een tag <meta http-equiv="Content-Security-Policy"> in de head van de pagina ook, hoewel de header de voorkeur heeft.
  4. Test voordat je het beleid afdwingt: stuur het beleid eerst als Content-Security-Policy-Report-Only en controleer de browserconsole op inhoud die zou zijn geblokkeerd. Let op: dit controle kijkt naar de afdwingende header, dus een beleid dat alleen rapporten maakt, slaagt niet.

Zo test Silktide dit

  1. Laad elke pagina en verzamel de HTTP-headers, samen met eventuele http-equiv-metatags op de pagina, die browsers op dezelfde manier behandelen.
  2. Zoek op beide plaatsen naar een waarde voor Content-Security-Policy.
  3. Rapporteer de pagina als geen van beide aanwezig is of als de waarde leeg is.
  4. Silktide beoordeelt niet de kwaliteit van het beleid — alleen of er één bestaat.

Problemen oplossen

Ik heb een beleid ingesteld, maar de controle mislukt nog steeds

Controleer of de header aanwezig is op precies de pagina's die worden gescand — beleid is soms alleen geconfigureerd voor de homepage of één virtuele host. Je kunt de headers die een pagina retourneert bekijken in de ontwikkelaarstools van je browser, onder het tabblad Netwerk.

Kan een CSP mijn website laten vastlopen?

Een beleid dat te strikt is, kan je eigen scripts of stijlen blokkeren. Daarom wordt sterk aangeraden om eerst te testen met Content-Security-Policy-Report-Only: dit rapporteert schendingen zonder iets te blokkeren.

Meer informatie

Laatst bijgewerkt

Was deze pagina nuttig?