Skip to main content
Alle Termen Glossary

CSP Nonce

Definition

Een CSP nonce is een unieke, willekeurige waarde die per paginabelading wordt gegenereerd en helpt legitieme inline scripts te valideren binnen een Content Security Policy. Door deze nonce toe te voegen aan zowel de CSP-header als toegestane script-tags, kunnen ontwikkelaars specifieke inline scripts toestaan terwijl sterke XSS-bescherming behouden blijft. Deze aanpak is vooral nuttig wanneer dynamische script-invoeging noodzakelijk is maar een strikte CSP gewenst is.

Hoe een CSP-nonce werkt

Een CSP-nonce (number used once, ofwel een eenmalig getal) is een willekeurig, ongokbaar token dat de server bij elke response genereert en op twee plekken neerzet: de nonce-... bron in de Content-Security-Policy-header en een bijpassend nonce-attribuut op elk inline <script> of <style> dat de server wil toestaan. De browser voert een inline script alleen uit wanneer het nonce-attribuut overeenkomt met de waarde die in de header voor precies die paginalading is opgegeven. Omdat het token per request opnieuw wordt gegenereerd en nooit voorspelbaar is, kan markup die een aanvaller later injecteert geen geldige nonce dragen, waardoor de browser weigert het uit te voeren. Zo houdt een site de inline scripts die echt nodig zijn en laat je de allesomvattende unsafe-inline-toestemming vallen waar XSS op leunt.

Waarom nonces belangrijk zijn voor XSS-verdediging

De meeste XSS-verdedigingen storten in op het moment dat een policy unsafe-inline moet toestaan, want dat sleutelwoord vertelt de browser om elk inline script te vertrouwen, inclusief elk script dat een aanvaller weet te injecteren. Een nonce-gebaseerde policy verwijdert dat sleutelwoord: alleen inline code die de server bewust met het huidige token heeft gestempeld, mag draaien. Dit verkleint het aanvalsoppervlak voor reflected, stored en DOM-based XSS zonder dat je lange allowlists van externe hosts hoeft te onderhouden, en het maakt geïnjecteerde event-handlers en inline scripttags die via een kwetsbare template zijn geplant onschadelijk. De nonce is de praktische route naar een strikte CSP, de configuratie die security-teams aanraden, op echte pagina's die nog steeds op wat inline JavaScript leunen.

Nonces goed uitrollen, en waar cside inpast

Genereer de nonce uit een cryptografisch veilige willekeurige bron (minstens 128 bits) en geef bij elke response een verse uit; het hergebruiken van een nonce over gecachte pagina's ondermijnt het hele doel. Plaats hem nooit ergens waar een aanvaller hem kan lezen en terugkaatsen. Combineer hem met strict-dynamic zodat vertrouwde scripts hun eigen afhankelijkheden kunnen laden, en houd een host-allowlist als terugvaloptie voor oudere browsers. Omdat een nonce nog steeds vertrouwt op wat een toegestaan script tijdens runtime doet, kan hij een gecompromitteerd third-party bestand niet tegenhouden. cside vult CSP hier aan door third-party scripts via een Script-methode te routeren en de daadwerkelijke payload te analyseren, zodat kwaadaardig gedrag in realtime wordt geblokkeerd dat een geldige nonce zonder meer had doorgelaten.

Definitie

Moet een CSP-nonce bij elke paginalading veranderen?

Ja. Een nonce moet voor elke HTTP-response opnieuw worden gegenereerd met een veilige willekeurige generator. Als je een pagina samen met de bijbehorende nonce cachet, of dezelfde waarde hergebruikt, kan een aanvaller die één geldige nonce waarneemt die opnieuw afspelen binnen geïnjecteerde markup, wat de bescherming tenietdoet. Statische of gecachte pagina's hebben doorgaans hashes nodig in plaats daarvan.

Definitie

Wat is het verschil tussen een CSP-nonce en een CSP-hash?

Beide laten specifieke inline scripts draaien onder een strikte policy. Een nonce is een willekeurig token per request dat aan de tag en de header wordt toegevoegd, ideaal voor server-gerenderde pagina's. Een hash is een vaste digest van de exacte inhoud van het script, beter geschikt voor statische of gecachte content waar je niet bij elke response een verse token kunt stempelen.

Got more questions

Talk to a security expert

We answer client-side security questions every day. Bring yours.

Boek een demo

Wil je dit doornemen met een engineer?

Dertig minuten, op je eigen site. Geen slides.

Boek een persoonlijke demo om te zien:

Hoe je in 1 dag voldoet aan PCI DSS-vereisten 6.4.3 en 11.6.1
Waarom scripts van derden een beveiligingsrisico zijn voor jou en je bezoekers
Hoe je privacy- en toestemmingslekken (AVG, CCPA) bij elke derde partij monitort
Hoe je misbruik van aanmeldingen, account sharing en chargeback-fraude stopt met device intelligence
Hoe je AI-agents en bots die je site bereiken in realtime detecteert en beheerst

Liever gewoon een vraag stellen?

Gebruik ditzelfde e-mailadres wanneer je bij Google boekt. Google kan je vragen het nogmaals in te vullen.

We gebruiken je e-mailadres om je boeking aan je bezoek te koppelen en te meten hoe mensen ons vinden. Dit is geen nieuwsbriefinschrijving.

Lukt het boeken niet? Agenda in een nieuw tabblad openen

Wat wil je oplossen?

Vertel het ons in één zin, dan komen we terug met iets bruikbaars in plaats van een standaardverhaal.

Waar we meestal mee helpen:

Zien welke scripts van derden op je site draaien
Bewijs voor PCI DSS 6.4.3 en 11.6.1
Bots, AI-agents en accountovername

Liever meteen een moment inplannen? Kies een tijdstip