X-Frame-Options et CSP frame-ancestors
Ces deux entêtes HTTP permettent d'indiquer à un navigateur web qu'un site web peut être inclus (ou non) dans un autre. Elles permettent d'éviter les attaques de type clickjacking.
Comme le laisse deviner son nom préfixé par « X- » (pour expérimental), X-Frame-Options est un entête déprécié qui a été remplacé par l'attribut « frame-ancestors » dans la deuxième version de CSP. Source : la norme CSPv2.
La directive HTTP Content-Security-Policy
(CSP) frame-ancestors
spécifie, comme son ancêtre X-Frame-Options les parents pouvant intégrer une page en utilisant <frame>
, <iframe>
, <object>
, <embed>
, ou <applet>
Le fonctionnement de l'un ou de l'autre est similaire, en effet vous pouvez par exemple définir cette directive à 'none'
sur CSP ce qui est comparable à l''en-tête HTTP X-Frame-Options
: deny
(supporté sur les anciens navigateurs).
S'autoriser mais REFUSER les autres
Similaire à X-Frame-Options SAMEORIGIN, vous pouvez ajouter ce qui suit.
Autoriser plusieurs domaines
X-Frame-Options n'avait pas d'option pour autoriser l'affichage à partir de plusieurs domaines. Grâce à CSP, vous pouvez faire comme ci-dessous.
X-Frame-Options sera obsolète dans un proche avenir lorsque CSP sera entièrement compatible avec tous les principaux navigateurs. prévoyez donc votre configuration de demain
Remarque :
Vous pouvez vérifier la configuration de votre serveur Apache/nginx et vérifier si vos en-têtes sont sécurisés en cliquant sur ces liens. Nous vous recommandons toutefois de masquer votre signature après vos tests.