Terug naar begrippenlijst

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.

Geschreven door Stan Classens

Zwaaiende emoji

Stan Front-end developer

Meer over Stan

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.

Stan Classens Front-end developer

Meer over Stan

Ik ben sinds 2019 werkzaam als front-end developer, waar ik uitgebreide ervaring heb opgedaan in het creëren van gebruiksvriendelijke en responsieve websites en webshops. Mijn expertise ligt voornamelijk in het werken met WordPress, waarbij ik maatwerkoplossingen ontwikkel die aansluiten bij de behoeften van de klant.

Daarnaast ben ik altijd bezig met het verbeteren van mijn vaardigheden en blijf ik op de hoogte van de laatste ontwikkelingen binnen de front-end technologie.

Front-ender van Wux
Zwaaiende emoji

Stan Front-end developer

Een krachtige en snelle website nodig?

Het team van Wux bouwt maatwerk weboplossingen die jouw bedrijf laten groeien. Neem vandaag nog contact op en ontdek hoe we jouw bedrijf elke dag succesvoller kunnen maken.

Meer over webdevelopment