Skip to main content
Alle Termen Glossary

Frame Busting

Definition

Frame busting is een beveiligingstechniek die voorkomt dat een webpagina wordt ingesloten in een iframe op een andere site, wat helpt clickjacking-aanvallen te voorkomen. Terwijl traditionele frame busting JavaScript gebruikte, vertrouwen moderne benaderingen op de X-Frame-Options header of CSP frame-ancestors directive. Deze bescherming is cruciaal voor sites die gevoelige acties of gegevens afhandelen.

Wat frame-busting is

Frame-busting (of frame-breaking) is de praktijk om te voorkomen dat een pagina wordt weergegeven binnen de iframe van een andere site, de kernverdediging tegen clickjacking. De oorspronkelijke techniek was JavaScript dat controleerde of de pagina het top-level venster was, bijvoorbeeld door window.top met window.self te vergelijken, en zo niet, navigatie forceerde om uit het frame te breken of de body verborg. Deze client-side aanpak werkte, maar bleek fragiel: aanvallers gebruikten sandboxed iframes, de beforeunload-gebeurtenis, restrictieve framing en andere trucs om naïeve scripts te verslaan. Moderne frame-busting is grotendeels verschoven van JavaScript naar declaratieve, door de server ingestelde HTTP-headers die de browser afdwingt nog voordat de pagina zelfs maar rendert.

Waarom het mechanisme belangrijk is

Hoe je frames uitschakelt bepaalt of de bescherming daadwerkelijk standhoudt. Script-gebaseerde busting draait pas nadat de pagina begint te laden en kan worden onderdrukt, vertraagd of via een sandbox uitgeschakeld, en faalt volledig als de gebruiker JavaScript heeft uitgeschakeld of een extensie ingrijpt. Header-gebaseerde busting wordt door de browser tijdens het laden geëvalueerd en kan niet door de framende pagina worden omzeild met scripts, dus is die strikt betrouwbaarder. Dit goed doen is belangrijk omdat de pagina's die het meest de moeite waard zijn om te framen, bankiersflows, adminacties, OAuth-toestemming, precies de pagina's zijn waar een omzeilde frame-buster verandert in accountovername of ongeautoriseerde transacties via clickjacking.

Het correct implementeren

Geef de voorkeur aan declaratieve headers boven scripts. Stel Content-Security-Policy: frame-ancestors in met een expliciete allowlist van origins die je mogen insluiten, of 'none' om framing volledig te verbieden, en voeg X-Frame-Options: DENY of SAMEORIGIN toe om oudere browsers te dekken. Houd een eventuele JavaScript-terugvaloptie alleen als extra verdedigingslaag aan, nooit als het enige besturingselement. Controleer of de headers op elke gevoelige route meegestuurd worden, inclusief foutpagina's. Omdat dit secure headers zijn die met je responses worden meegeleverd, ondermijnt een gecompromitteerd of misdragend third-party script dat ze wijzigt of verwijdert de bescherming; de runtime-monitoring van cside kan detecteren wanneer framing-headers worden verwijderd of verzwakt, zodat de verdediging in productie intact blijft.

Definitie

Is X-Frame-Options of CSP frame-ancestors de juiste keuze?

Gebruik beide. CSP frame-ancestors is de moderne directive, ondersteunt meerdere toegestane origins en gaat boven X-Frame-Options in browsers die het respecteren. X-Frame-Options (DENY of SAMEORIGIN) blijft een nuttige terugvaloptie voor oudere clients die geen ondersteuning voor frame-ancestors hebben. Beide sturen maximaliseert de dekking.

Definitie

Waarom wordt JavaScript frame-busting als onbetrouwbaar beschouwd?

Het wordt pas uitgevoerd nadat de pagina is geladen en hangt ervan af dat JavaScript is ingeschakeld en ononderbroken blijft. Aanvallers kunnen het neutraliseren met sandboxed iframes, de onbeforeunload-gebeurtenis of double-framing-trucs. Header-gebaseerde framebesturing wordt door de browser afgedwongen vóór het renderen, dus die kan niet met scripts worden omzeild door de insluitende pagina.

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.

We laten je zien:

Welke scripts van derden er nu op je site draaien
Hoe je ervoor staat op PCI DSS 6.4.3 en 11.6.1
Welk deel van je verkeer uit bots en AI-agents bestaat

Liever gewoon een vraag stellen?

Vrije momenten zoeken…

Alleen echte mensen. Wij merken het.

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