X-Frame-Options
X-Frame-Options is een beveiligingsinstelling (een HTTP response header) die door een webserver wordt meegestuurd naar de browser van een bezoeker. Deze header geeft aan de browser door of de opgevraagde webpagina wel of niet mag worden ingeladen binnen een zogeheten <frame>, <iframe>, <embed> of <object>. Door het inladen binnen frames te beperken of te blokkeren, voorkomen webontwikkelaars dat kwaadwillenden hun webpagina ongemerkt ‘misbruiken’ als een transparante overlay op een andere website.
Inhoudsopgave
Het voorkomen van clickjacking
De voornaamste reden om de X-Frame-Options header in te stellen, is het beschermen van bezoekers tegen clickjacking (ook wel een UI redress attack genoemd).
Bij clickjacking bouwt een aanvaller een misleidende website en plaatst daar een transparant iframe van jouw website overheen, bijvoorbeeld de inlogpagina van een bank of een ‘bestelling bevestigen’-knop van een webshop. De bezoeker denkt dat hij op een knop van de misleidende pagina klikt (bijvoorbeeld om een prijs te winnen), maar klikt in werkelijkheid ongemerkt op de onzichtbare knop op jouw website. Met X-Frame-Options voorkom je dat jouw site in zo’n onzichtbaar frame geladen kan worden.
De drie mogelijke instellingen van X-Frame-Options
Ontwikkelaars kunnen de X-Frame-Options header op de server configureren met één van de volgende instructies (directives):
- DENY: De pagina mag door geen enkele site in een frame worden geladen, zelfs niet door jouw eigen website. Dit is de meest veilige optie voor gevoelige pagina’s zoals instellingen, formulieren of afrekenomgevingen.
- SAMEORIGIN: De pagina mag alleen in een frame worden geladen als de verzoekende site exact hetzelfde domein, protocol en poort gebruikt. Dit is handig als je binnen je eigen platform wel gebruikmaakt van interne iframes.
- ALLOW-FROM uri: (Verouderd) Hiermee kon een specifieke externe URL worden opgegeven die de pagina wel in een frame mocht laden. Omdat moderne browsers deze optie nauwelijks meer ondersteunen, wordt deze directive niet meer gebruikt.
Veelgestelde vragen
X-Frame-Options is de traditionele HTTP-header voor frame-beveiliging. Content Security Policy (CSP) is de modernere opvolger die via de directive frame-ancestors veel verfijndere controle biedt over welke domeinen een pagina mogen framen.
De browser weigert de pagina op te halen binnen de iframe-container. In plaats van de verwachte inhoud ziet de gebruiker een lege ruimte of een foutmelding in het frame, terwijl de rest van de hoofdsite gewoon laadt.
Het is aan te raden om de header serverbreed in te stellen voor alle pagina’s, en in het bijzonder voor afrekenomgevingen, inlogschermen en beheerdersdashboards waar gebruikersacties kunnen worden misleid.
Dit kun je eenvoudig testen via de ontwikkelaarstools (DevTools) van je browser onder het tabblad ‘Network’. Klik op het eerste verzoek van je pagina en bekijk de kop Response Headers om te zien of de instelling aanwezig is.
Gerelateerde begrippen
- Conversiepad
- Copyright
- Dataverkeer
- Domain Rating
- Domeinnaam
- Dropdown menu
- Error handling
- Eyetracking
- Firefox
- Google Chrome
- H1 Titel
- Huisstijl
- Integrated Development Environment
- Kennisbank
- Meerstapsformulieren
- Menustructuur
- Nofollow
- Patch
- Product Landing Page
- Sitemap
- Usability
- Web-based
- Webbrowser
- Webtekst