Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

En-tête X-Frame-Options

Note : Pour des options plus complètes que celles offertes par cet en-tête, voir la directive frame-ancestors dans un en-tête Content-Security-Policy.

L'en-tête de réponse HTTP X-Frame-Options peut être utilisé afin d'indiquer si un navigateur doit être autorisé à afficher le document dans un <frame>, <iframe>, <embed> ou <object>. Les sites peuvent utiliser cet en-tête afin d'éviter les attaques d'usurpation de clic et certaines fuites inter-sites, en s'assurant que leur contenu n'est pas intégré dans d'autres sites.

Si cet en-tête n'est pas envoyé, et que le site web n'a pas mis en place d'autres mécanismes pour restreindre l'intégration (comme la directive CSP frame-ancestors), alors le navigateur permet à d'autres sites d'intégrer ce document.

Type d'en-tête En-tête de réponse

Syntaxe

http
X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN

Directives

DENY

Le document ne peut pas être chargé dans un cadre, quelle que soit son origine (l'intégration à la fois de la même origine et d'origines croisées est bloquée).

SAMEORIGIN

Le document ne peut être intégré que si tous les cadres ancêtres ont la même origine que la page elle-même.

ALLOW-FROM origin

Il s'agit d'une directive obsolète. Les navigateurs modernes qui rencontrent des en-têtes de réponse avec cette directive ignorent complètement l'en-tête. L'en-tête HTTP Content-Security-Policy possède une directive frame-ancestors que vous devez utiliser à la place.

Exemples

Attention : Définir X-Frame-Options dans l'élément HTML <meta> (par exemple, <meta http-equiv="X-Frame-Options" content="deny">) n'a aucun effet. X-Frame-Options n'est appliqué qu'avec les en-têtes HTTP, comme le montrent les exemples ci-dessous.

Configurer Apache

Pour configurer Apache afin d'envoyer l'en-tête X-Frame-Options pour toutes les pages, ajoutez ceci à la configuration de votre site :

apacheconf
Header always set X-Frame-Options "SAMEORIGIN"

Pour configurer Apache afin de définir X-Frame-Options sur DENY, ajoutez ceci à la configuration de votre site :

apacheconf
Header set X-Frame-Options "DENY"

Configurer Nginx

Pour configurer Nginx afin d'envoyer l'en-tête X-Frame-Options, ajoutez ceci soit à la configuration HTTP, serveur ou à la configuration de l'emplacement :

nginx
add_header X-Frame-Options SAMEORIGIN always;

Pour définir l'en-tête X-Frame-Options sur DENY, utilisez :

nginx
add_header X-Frame-Options DENY always;

Configurer IIS

Pour configurer IIS afin d'envoyer l'en-tête X-Frame-Options, ajoutez ceci au fichier Web.config de votre site :

xml
<system.webServer>
  …
  <httpProtocol>
    <customHeaders>
      <add name="X-Frame-Options" value="SAMEORIGIN" />
    </customHeaders>
  </httpProtocol>
  …
</system.webServer>

Pour plus d'information, voir l'article du support technique Microsoft sur la mise en place de cette configuration à l'aide du Gestionnaire IIS (angl.) depuis son interface utilisateur.

Configurer HAProxy

Pour configurer HAProxy afin qu'il envoie l'en-tête X-Frame-Options, ajoutez la ligne suivante à la configuration de votre partie avant du site (site), écouteur ou partie arrière du site (serveur) :

rspadd X-Frame-Options:\ SAMEORIGIN

Dans les versions plus récentes, utilisez :

http-response set-header X-Frame-Options SAMEORIGIN

Configurer Express

Pour définir X-Frame-Options sur SAMEORIGIN en utilisant Helmet (angl.), ajoutez ce qui suit à la configuration de votre serveur :

js
import helmet from "helmet";

const app = express();
app.use(
  helmet({
    xFrameOptions: { action: "sameorigin" },
  }),
);

Spécifications

Spécification
HTML
# the-x-frame-options-header

Compatibilité des navigateurs

Voir aussi