Ster inactiefSter inactiefSter inactiefSter inactiefSter inactief
 

X-Frame-Options

HTTP X-Frame-Options Clickjacking verdediging

De HTTP-antwoord header X-Frame-Options kan worden gebruikt om aan te geven of een browser al dan niet toestemming moet krijgen om een ​​pagina in een <frame>, <iframe> of <object> weer te geven. Sites kunnen dit gebruiken om clickjacking-aanvallen te voorkomen door ervoor te zorgen dat hun inhoud niet is ingesloten in andere sites. De toegevoegde beveiliging wordt alleen geboden als de gebruiker die het document opent een browser gebruikt die X-Frame-Options ondersteunt.

Zinsbouw mogelijkheden

Header set X-Frame-Options: deny
Header setX-Frame-Options: sameorigin
Header setX-Frame-Options: "allow-from; https://example.com/"

Richtlijnen voor X-Frame-Options

Als u deny opgeeft, mislukken niet alleen pogingen om de pagina in een frame te laden wanneer ze van andere sites worden geladen, maar pogingen om dit te doen mislukken wanneer ze vanaf sameorigin worden geladen. Aan de andere kant, als u sameorigin specificeert, kunt u de pagina nog steeds in een frame gebruiken zolang de site die deze in een frame bevat dezelfde is als degene die de pagina bedient.

deny

De pagina kan niet in een frame worden weergegeven, ongeacht de site die dit probeert.

sameorigin

De pagina kan alleen in een frame op de opgegeven origin worden weergegeven. Merk op dat dit in Firefox nog steeds hetzelfde probleem heeft als sameorigin  deed - het controleert niet de frame ancestors om te zien of ze in same origin zijn.

allow-from uri

De pagina kan alleen in een frame op de opgegeven oorsprong worden weergegeven. Merk op dat dit in Firefox nog steeds hetzelfde probleem heeft als dezelfde originel deed - het controleert niet de frame ancestors om te zien of ze in sameorigin zijn.

Voorbeelden voor een X-Frame-Options

Opmerking: het instellen van de metatag is nutteloos! Bijvoorbeeld,

<meta http-equiv="X-Frame-Options"content="deny">

heeft geen effect. Gebruik het niet! Alleen door de HTTP-header in te stellen zoals de onderstaande voorbeelden, werken X-Frame-Options.
Apache configureren

Als u Apache wilt configureren om de header X-Frame-Options voor alle pagina's te verzenden, voegt u dit toe aan de configuratie van uw site:

<IfModule mod_headers.c>
Header always set X-Frame-Options "sameorigin"
</IfModule>

Als u Apache wilt configureren om de weigering voor X-Frame-Options in te stellen, voegt u dit toe aan de configuratie van uw site:

<IfModule mod_headers.c>
Header always set X-Frame-Options "deny"
</IfModule>

Als u Apache wilt configureren om de X-Frame-Options in te stellen van een specifieke host, voegt u dit allow-from de configuratie van uw site:

<IfModule mod_headers.c>
Header always set X-Frame-Options "allow-from https://example.com/"
</IfModule>
Nginx configureren

Om nginx te configureren voor het verzenden van de header X-Frame-Options, voegt u dit toe aan uw http-, server- of locatieconfiguratie:

Header always set add_header X-Frame-Options sameorigin;
IIS configureren

Als u IIS wilt configureren om de header X-Frame-Options te verzenden, voegt u dit toe aan het Web.config van uw site:

<system.webServer>
<httpProtocol> 
<ustomHeaders> 
<dd name="X-Frame-Options" value="sameorigin" />
</customHeaders> 
</httpProtocol>...   
</system.webServer>

HAProxy configureren

Om HAProxy te configureren om de header X-Frame-Options te verzenden, voeg dit toe aan uw front-end, listen of backend-configuratie:

Header always set X-Frame-Options "SAMEORIGIN"

 Nu dat de header is toegevoegd, zijn er nog een aantal zaken die erbij uitgelegd moeten worden.

Het is niet alleen maar selecteren > kopiëren > Plakken in de .htaccess bestand. Je zal moeten weten dat wat jouw structuur is van jouw website, wat gebruik je allemaal in de website.

De Headers X-Frame opties

  • Met de security header X-Frame opties kun je dus aangeven of jouw website geladen mag worden in een iframe.
  • Een iframe is een venster waarin je website content kunt laden.
  • Je kunt ook een complete website laden in een iframe.
  • Zo zou iemand anders dus een website kunnen maken met daarop alleen een iframe en in dat iframe wordt een andere website geladen (bijvoorbeeld jouw website).

Dit brengt een risico met zich mee. Via een iframe kan iemand dus jouw website helemaal namaken. Deze nagemaakte website blijft ook actueel, omdat alle wijzigingen die jij aanbrengt op jouw website ook live getoond worden in het iframe van de namaak site.

Degene die deze namaak site met iframe gebouwd heeft, kan nu aan bepaalde knoppen op jouw website een andere functie geven (bijvoorbeeld een kwaadaardig script). Let wel, deze andere functie is alleen actief in het iframe, dus niet op jouw echte site.

Wanneer nu de aanvaller mensen naar de door hem gemaakte namaak site kan lokken, dan lijkt het net of ze op jouw site terecht zijn gekomen. Wanneer ze nu klikken op een knop waaraan de aanvaller een kwaadaardig script heeft gekoppeld, dan lijkt het net of mensen gehackt zijn via jouw website.

Met deze header geef je aan dat pagina's met iframes waarin jouw website geladen wordt alleen toegestaan zijn op je eigen website (sameorigin). Wil iemand op een ander domein jouw website in een iframe laden, dan gaat dat dus niet lukken, je voorkomt hiermee dan kopiëren van je website

A- A A+
Ga naar boven