En-tĂȘte de sĂ©curitĂ© X-Frame-Options et outils de test responsive
Vous essayez de tester le responsive d’un site Web via des outils en ligne et celui-ci ne s’affiche pas ? C’est sĂ»rement dĂ» Ă l’en-tĂȘte de sĂ©curitĂ© X-Frame-Options implĂ©mentĂ© sur le site.
En effet, ce n’est pas l’outil en question qui ne fonctionne pas. C’est juste que la plupart de ces outils tels que XRespond, Screenfly ou autres chargent le site Web dans un iframe pour tester sa rĂ©activitĂ©.
Ainsi, si l’en-tĂȘte de sĂ©curitĂ© X-Frame-Options
a pour paramĂštre DENY
ou SAMEORIGIN
, le navigateur refusera d’intĂ©grer la page Web dans un iframe.
Dans cet article, je vous explique donc dans les grandes lignes :
- Ce qu’est un iframe et le clickjacking
- Ă quoi sert l’en-tĂȘte de sĂ©curitĂ© X-Frame-Options
- Comment faire en sorte que le site s’affiche dans un iframe lorsqu’il est protĂ©gĂ© par cet en-tĂȘte
Qu’est-ce qu’un iframe et en quoi peut-il ĂȘtre dangereux
En bref, un iframe
est une balise servant Ă afficher le contenu d’une autre page Web sur une page Web. Il est souvent utilisĂ© pour intĂ©grer des vidĂ©os, des cartes et d’autres mĂ©dias. Le problĂšme est que certaines personnes l’emploient Ă des fins malveillantes.
En effet, un hacker peut se servir d’un iframe
pour embarquer une page web et en modifier le comportement. C’est ce que l’on appelle communĂ©ment une attaque par dĂ©tournement de clic ou clickjacking.
Techniquement, l’attaquant crĂ©e un site Web d’apparence lĂ©gitime et y intĂšgre un site Web malveillant via un iframe. L’iframe est invisible et sert Ă superposer du contenu cachĂ© au-dessus des Ă©lĂ©ments cliquables du site Web lĂ©gitime. Le visiteur croit alors cliquer sur un contenu sur la page visible. Mais en fait, il clique sur un Ă©lĂ©ment invisible de la page superposĂ©e.
Cela peut amener les utilisateurs Ă :
- Télécharger involontairement des logiciels malveillants
- Fournir des informations d’identification ou des informations sensibles
- Visiter des pages Web malveillantes
- TransfĂ©rer de l’argent
- Acheter des produits en ligne
Comme vous pouvez le constater, autoriser les iframes sur votre site peut ĂȘtre dangereux. Pour contrer cela, il existe une solution : implĂ©menter l’en-tĂȘte de sĂ©curitĂ© X-Frame-Options.
Ă quoi sert l’en-tĂȘte de sĂ©curitĂ© X-Frame-Options
L’en-tĂȘte de sĂ©curitĂ© X-Frame-Options
aussi appelĂ© en-tĂȘte de rĂ©ponse HTTP est une fonctionnalitĂ© de sĂ©curitĂ© assez ancienne. Son but est d’aider Ă lutter contre les attaques par dĂ©tournement de clic. Globalement, il indique Ă un navigateur s’il est autorisĂ© ou non Ă afficher une page dans un iframe.
Il existe trois paramĂštres possibles pour l’en-tĂȘte X-Frame-Options :
DENY
qui interdit le chargement d’une page dans un iframe, quel que soit le siteSAMEORIGIN
qui permet de charger la page dans un iframe uniquement si elle est affichĂ©e sur une page du mĂȘme domaineALLOW-FROM
qui permet Ă la page d’ĂȘtre chargĂ©e uniquement dans un iframe du domaine d’origine et/ou un domaine spĂ©cifiĂ©
Sur mes sites metaforweb.com et metaforweb.fr, cet en-tĂȘte de sĂ©curitĂ© est prĂ©sent dans le fichier .htaccess et dĂ©fini sur SAMEORIGIN
:
<IfModule mod_headers.c>
Header set X-Frame-Options "SAMEORIGIN"
</IfModule>
On peut constater dans les ChromeDevtools que le navigateur le voit :
VoilĂ ce qu’il se passe lorsque je veux tester le responsive de mon site metaforweb.fr avec XRespond :
- 1. XRespond essaie de charger le site dans un iframe.
- 2. Le navigateur ausculte le site et voit qu’il existe des directives d’en-tĂȘte de sĂ©curitĂ©.
- 3. X-Frame-Options lui signale que le site n’est autorisĂ© Ă ĂȘtre chargĂ© dans un iframe que sur le domaine metaforweb.fr (SAMEORIGIN).
- 4. Le navigateur obĂ©it Ă la rĂšgle et n’affiche pas le site dans l’iframe. Au survol de la souris, on peut voir “metaforweb.fr n’autorise pas la connexion”.
Vous l’avez compris, X-Frame-Options
protĂšge mes sites, mais il m’est impossible d’utiliser les outils en ligne de test responsive ou autres. Alors, pour contourner ce problĂšme, j’utilise une technique pour dĂ©sactiver l’en-tĂȘte X-Frame-Options temporairement…
RĂ©soudre le problĂšme d’affichage d’un site dans un iframe en dĂ©sactivant l’en-tĂȘte de sĂ©curitĂ© X-Frame-Options
Afin de pouvoir afficher un site dans un iframe lorsqu’un en-tĂȘte de sĂ©curitĂ© X-Frame-Options
est en place, c’est simple.
Installez l’extension de navigateur Chrome Ignore X-Frame headers.
Il s’agit d’une extension qui supprime les en-tĂȘtes de rĂ©ponse HTTP X-Frame-Options
et Content-Security-Policy
. Elle permet donc d’afficher n’importe quelle page d’un site dans un iframe.
Activez l’extension en cliquant sur “Tous les sites”. Cela supprimera l’en-tĂȘte X-frame-options
pour tous les onglets ouverts.
Vous pourrez donc dorĂ©navant tester le responsive d’un site ou gĂ©nĂ©rer un mockup multi-appareils (multi device website generator) sans problĂšme.
Pour exemple, voici le rĂ©sultat pour le test responsive de metaforweb.fr avec XRespond lorsque l’extension est active :
â ïžâ Attention, n’utilisez cette extension que temporairement et uniquement Ă des fins de test ou de dĂ©pannage.
En effet, elle dĂ©sactive d’importants mĂ©canismes de sĂ©curitĂ© du navigateur.
Alors, n’oubliez pas de la dĂ©sactiver lorsque vous n’en avez plus besoin en la rĂ©glant sur “Lorsque vous cliquez sur l’extension”. đ
RĂ©flexion finale sur l’en-tĂȘte de sĂ©curitĂ© X-Frame-Options
Dans cet article, je vous ai expliquĂ© ce qu’est un iframe, Ă quoi il sert et aussi la vulnĂ©rabilitĂ© qu’il peut occasionner Ă un site.
Je vous ai Ă©galement parlĂ© de l’en-tĂȘte de sĂ©curitĂ© X-Frame-Options et de la façon de le dĂ©sactiver pour pouvoir utiliser certains outils en ligne.
DĂ©sormais, avec cette astuce, vous n’aurez plus aucun problĂšme pour gĂ©nĂ©rer des mockups de site Web multi-appareils ou encore tester le responsive d’un site Web. đ
PS : X-Frame-Options n’est pas le seul en-tĂȘte de sĂ©curitĂ© Ă mettre en place pour la sĂ©curitĂ© de votre site Web.
Alors si le sujet des en-tĂȘtes de sĂ©curitĂ© (HTTP security headers) vous intĂ©resse, sachez que cela fera l’objet d’un prochain articleâŠ
Soumettre un commentaire đŹ