Les sites web peuvent utiliser les entêtes X-Frame-Options ou une stratégie de sécurité du contenu (Content Security Policy CSP) pour contrôler si d’autres sites web peuvent les intégrer dans leurs propres pages via la balise iframe. C’est une fonctionnalité de sécurité importante pour empêcher le détournement de clic (clickjacking), attaque qui permet à des sites malveillants de duper les utilisateurs et utilisatrices pour les amener à cliquer sur les liens d’un site.
Lorsque le navigateur charge une page contenant un iframe, il analyse l’entête fournie par le site distant et affiche un message si le contenu n'est pas autorisé à être intégré de cette manière.
Sous Firefox le message est le suivant:
Pour protéger votre sécurité, example.com ne permettra pas à Firefox d’afficher la page si celle-ci est intégrée par un autre site. Pour voir cette page, vous devez l’ouvrir dans une nouvelle fenêtre.
Chaque site est en mesure de déclarer s'il souhaite voir son contenu intégrable dans d'autres sites par des iframe grâce aux entêtes X-Frame-Options
Ci-dessous on affiche l’entête HTTP d'une ressource refusant l'intégration
curl -i "https://grafana.services.localhost" --cacert ~/dev/docker/localweb/traefik/certs/ca-chain.cert.pem HTTP/2 302 cache-control: no-cache content-type: text/html; charset=utf-8 date: Sat, 06 Nov 2021 11:09:06 GMT expires: -1 location: /login pragma: no-cache set-cookie: redirect_to=%2F; Path=/; HttpOnly; SameSite=Lax x-content-type-options: nosniff x-frame-options: deny x-xss-protection: 1; mode=block content-length: 29