iframe-sandboxing en Permissions Policy
Beperk ingesloten inhoud met sandbox en Permissions-Policy
iframe-sandboxing en Permissions Policy is een gratis HTML Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject HTML Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus HTML Academy bevat in totaal 4 lessen.
Waarom sandbox-iframes?
Niet-vertrouwde inhoud in een iframe (widgets van derden, HTML-voorbeelden die door gebruikers zijn aangeleverd, ingesloten games) mag niet over alle mogelijkheden van de browser beschikken. Het sandbox-attribuut beperkt wat het iframe kan doen, zodat de schade kleiner blijft als blijkt dat de inhoud kwaadaardig is.
Lege sandbox = maximale beperking
<iframe sandbox src="..."> zonder waarde past elke beperking toe: geen scripts, geen formulieren, geen pop-ups, geen navigatie op hoofdniveau, geen plug-ins, behandeld als een unieke origin. Gebruik dit als uitgangspunt en voeg alleen toe wat de ingesloten inhoud nodig heeft.
Mogelijkheden toevoegen
Sandbox-tokens schakelen specifieke mogelijkheden weer in: sandbox="allow-scripts allow-same-origin" staat scriptuitvoering en toegang tot dezelfde origin toe. Elk token versoepelt één beperking; combineer de minimale set die het iframe daadwerkelijk nodig heeft.
<iframe sandbox="allow-scripts allow-same-origin" src="https://embed.example.com/widget"></iframe>Veelgebruikte tokens
allow-scripts schakelt JavaScript in. allow-forms schakelt het verzenden van formulieren in. allow-popups schakelt window.open in. allow-same-origin voorkomt dat het iframe als een unieke origin wordt behandeld (nodig voor localStorage). allow-top-navigation staat navigatie van het bovenliggende venster toe.
De gevaarlijke combinatie
De combinatie van allow-scripts met allow-same-origin voor een iframe dat je ook zelf host, geeft het iframe volledige toegang tot je origin — inclusief de mogelijkheid om zijn eigen sandbox te verwijderen. Combineer deze alleen voor vertrouwde inhoud; laat allow-same-origin weg bij niet-vertrouwde inhoud.
Machtigingsbeleid
Het machtigingsbeleid (voorheen Feature Policy) bepaalt welke browser-API's (camera, microfoon, geolocatie, versnellingsmeter, gyroscoop, magnetometer, volledig scherm, automatisch afspelen) de pagina en haar iframes mogen gebruiken. Stel dit in op de bovenliggende pagina: Permissions-Policy: geolocation=() blokkeert geolocatie overal.
Machtiging per iframe
Het allow-attribuut op een iframe overschrijft het beleid van de bovenliggende pagina voor dat iframe: <iframe allow="camera; microphone"> staat die API's in het iframe toe, zelfs als het standaardbeleid van de bovenliggende pagina ze weigert.
<iframe
src="https://video-call.example.com"
allow="camera; microphone; fullscreen"
sandbox="allow-scripts allow-same-origin">
</iframe>Machtigingen opsommen
Specificaties bevatten een steeds veranderende lijst — camera, microfoon, geolocatie, versnellingsmeter, gyroscoop, magnetometer, betalingen, USB, MIDI, volledig scherm, automatisch afspelen, beeld-in-beeld en tientallen andere. Controleer de lijst en weiger expliciet alles wat je pagina niet nodig heeft.
Schendingen van het beleid rapporteren
Het machtigingsbeleid meldt schendingen bij een geconfigureerd eindpunt, net als report-uri van CSP. Gebruik dit tijdens een migratie: schakel een strikt beleid in, kijk wat er stukgaat en versoepel het daarna stapsgewijs voor legitieme functies.
Isolatie van origins
Stel voor gevoelige pagina's Cross-Origin-Opener-Policy: same-origin en Cross-Origin-Embedder-Policy: require-corp in. Hierdoor wordt de pagina geïsoleerd van vensters van andere origins, wat bescherming biedt tegen timingaanvallen in de stijl van Spectre en SharedArrayBuffer mogelijk maakt.
Gelaagde beveiliging
Sandbox + machtigingsbeleid + CSP + COOP/COEP werken samen in lagen. Elke laag beschermt tegen een andere aanvalsklasse. Inhoud van derden insluiten is riskant genoeg dat geen enkele maatregel volstaat — combineer ze zodat een omzeiling van de ene door een andere wordt opgevangen.
Testen
Gebruik het deelvenster Network en het deelvenster Issues in Chrome DevTools om schendingen van sandbox en machtigingen zichtbaar te maken. Veel schendingen zijn stil (de API retourneert gewoon undefined of wijst de promise af); expliciete rapportage-eindpunten helpen ze in productie te ontdekken.
Kennischeck
Waarom kan de combinatie sandbox="allow-scripts allow-same-origin" gevaarlijk zijn voor een iframe dat op je eigen origin wordt gehost?
Samenvatting
Gebruik standaard sandbox-iframes en voeg alleen de tokens toe die de inhoud nodig heeft. Vermijd allow-scripts+allow-same-origin voor niet-vertrouwde inhoud. Gebruik het machtigingsbeleid om krachtige API's voor de hele site te weigeren en het allow-attribuut van het iframe om uitzonderingen toe te staan. Combineer dit met CSP en COOP/COEP voor gelaagde beveiliging.
Leer HTML met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 40
- Lessen
- 159
Veelgestelde vragen
Is de les “iframe-sandboxing en Permissions Policy” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad HTML Academy, waaronder “iframe-sandboxing en Permissions Policy”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus HTML Academy bevat in totaal 4 lessen.
Wat leer ik in “iframe-sandboxing en Permissions Policy”?
Beperk ingesloten inhoud met sandbox en Permissions-Policy Je oefent met HTML Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met HTML Academy te beginnen?
Ervaring vooraf is niet nodig. HTML Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “iframe-sandboxing en Permissions Policy”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over HTML Academy?
Ja. Elke les over HTML Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Content Security Policy: meta http-equiv
- XSS via innerHTML en hoe u dit voorkomt
- iframe-sandboxing en Permissions Policy
- HTTPS en Subresource Integrity