Que fait X-Frame-Options ?

Les en-têtes HTTP sont un type de métadonnées envoyées avec les requêtes et les réponses Web, les informations qu'ils fournissent peuvent être importantes ou simplement informatives. Les en-têtes de sécurité sont un sous-ensemble des « en-têtes de réponse » qui peuvent être définis par le serveur Web, ils sont l'une des fonctionnalités qui peuvent aider à résoudre un certain nombre de problèmes de sécurité. L'un des en-têtes de sécurité, appelé « X-Frame-Options » est conçu pour empêcher les attaques par détournement de clic.

Clic-jacking

Le détournement de clic, également connu sous le nom de « redressement de l'interface utilisateur », est un problème dans lequel un attaquant peut amener un utilisateur à cliquer sur quelque chose qui n'est pas ce qu'il semble être. Pour les sites Web, cela se fait en superposant un site Web transparent sur un site visible. Dans ce type d'attaque, l'utilisateur pense qu'il interagit avec le site Web visible mais en réalité, il affecte involontairement le site Web transparent.

Par exemple, un attaquant pourrait créer un site Web qui rend probable qu'un utilisateur clique sur un bouton, peut-être un bouton de lecture pour une vidéo. Dans une couche transparente au-dessus de cette page Web se trouve une deuxième page Web, telle que la page Web pour supprimer votre compte Facebook avec le bouton « Supprimer le compte » placé directement au-dessus du bouton de lecture. Dans ce scénario, lorsque l'utilisateur essaie de cliquer sur Play, il clique en fait sur le bouton pour supprimer son compte Facebook.

Le détournement de clic repose sur la possibilité d'afficher le site Web cible au-dessus du site Web factice, via un processus appelé « framing ». Le cadrage utilise l'élément HTML « iframe » qui peut charger une page Web distincte entière dans une autre page. En chargeant la page Web cible dans un cadre, en la positionnant soigneusement et en la rendant transparente, la victime ignorera complètement qu'elle est amenée à effectuer une action.

X-Frame-Options

L'en-tête de réponse HTTP « X-Frame-Options » est une fonctionnalité facultative qui peut être définie pour les sites Web dans les fichiers de configuration du serveur. X-Frame-Options empêche le chargement des pages Web dans des iframes, ce qui empêche leur superposition sur un autre site Web. Le navigateur de la victime applique en fait le contrôle de sécurité, car tous les navigateurs respectent l'en-tête X-Frame-Options et refuseront de charger des pages Web avec l'en-tête défini dans un cadre.

L'en-tête permet au propriétaire du site Web de configurer le degré de restriction du paramètre. Il existe deux paramètres: « X-Frame-Options: DENY » empêche qu'une page Web protégée ne soit jamais encadrée. L'autre option, « X-Frame-Options: SAMEORIGIN », permet d'encadrer des pages Web protégées, uniquement si la page chargeant le cadre a le même nom de domaine. Dans ce cas, vous pouvez charger un cadre sur votre propre site Web, mais personne d'autre ne peut le charger sur le leur.